Необходимо было обеспечить максимально удобную и интуитивно понятную работу для работников поликлиники.
В итоге интерфейс получился таким:
1.Порядок работы
1.1 Информация о клиенте
Начинать работу необходимо с заполнения информации о клиенте.
Если начинаем работу с первым клиентом после запуска программы, то поля пустые и просто необходимо внести данные.
Если поля содержат данные предыдущего клиента, необходимо нажать кнопку "Следующий" чтобы обнулить значения.
Фамилия, имя, отчество, дата рождения и адрес - являются обязательными к заполнению и программа не разрешит начать сканирование, если какое-то из обязательных полей не заполнено.
Телефон - не обязательное поле и его можно не заполнять.
1.2 Сканирование
Нажатие на кнопку "Сканировать" запускает процесс сканирования. В фоновом режиме создается папка для данного клиента, куда будут сохраняться отсканированные документы. Название папки уникально и имеет следующий вид ГП26_Иванов_И_И_2013_07_26. Таким образом, если Иванов И.И. придет в другой день, то для него будет создана другая папка.
Далее фоново в этой папке создается текстовый файл с данными о клиенте (Иванов_info.txt).
В процессе сканирования создаются сканы документов, причем, чтобы обеспечить их уникальность в названии скана присутствует порядковый номер (Иванов_И_И_1.jpeg, Иванов_И_И_2.jpeg).
1.3 Отправка почты
По нажатию на кнопку "Отослать" вначале в фоновом режиме создается архив папки клиента созданной в процессе сканирования (ГП26_Иванов_И_И_2013-07-26.7z) , после успешного создания архива происходит отправка электронного сообщения с прикрепленным архивом на заданный email.
2.Особенности реализации
Нашел обзор сканирования без использования диалогового окна (без диалогового окна быстрее и проще работать) и вынес логику работы со сканером в отдельный класс WIAScanner
Перед отправкой отсканированных изображении на электронный почтовый адрес (класс Email) происходит архивация папки бесплатным архиватором 7-Zip (класс SevenZip).
Сообщение отправляется синхронно, по завершению отправки пользователю выдается соответствующее сообщение.
Некоторые данные (куда отправлять почту) решил хранить во внешнем конфигурационном файле scancenter.config
