|  2.Структура программыАрхитектура ММ ППО «Аист» условно разделена на модель, представление и контроллер. Так же в архитектуре ММ ППО «Аист» реализован ряд вспомогательных классов. Далее рассматривается состав модели, представления и контроллера.
 
 2.1. Модель включает в себя описание объектов и методов их взаимодействия с базой данных (файлы с расширениями .h и .cpp). Модель построена на основе объектно-реляционного отображения объектов приложения в базе данных. В приложении используются следующие объекты:
 
 
            Adopt - Граждане желающие принять ребенка в семью;
 
AdoptArch - Архив граждан желающих принять ребенка в семью;
 
Child - Дети, оставшиеся без попечения родителей;
 
ChildArch - Архив детей оставшихся без попечения родителей;
 
ChildFirst – Первичный учет анкет детей;
 
Kinsfolk - Совершеннолетние родственники;
 
LifeConditionReport - Отчеты о жизни детей;
 
MarkGroup - Группы меток;
 
Measure - Меры принятые для устройства ребенка в семью;
 
Photo - Фотографии детей;
 
PrintTemplate - Шаблоны печати;
 
Sibling - Несовершеннолетние родственники;
 
SearchQuery - Поисковый запрос;
 
 В приложении так же используются справочники (перечисления):
 
 
            Cl_CivilRegistry - Загсы;
 
Cl_ConsulateOrganization - Консульские организации;
 
Cl_ControllingOgranization - Контролирующие организации;
 
Cl_DenialReasonDocument - Документ, подтверждающий невозможность устроить ребенка в семью родственника;
 
Cl_EthnicGroup - Этническая группа;
 
Cl_Eyes - Цвет глаз;
 
Cl_Hair - Цвет волос;
 
Cl_Health - Состояние здоровья;
 
Cl_HealthGroup - Группа здоровья;
 
Cl_IdentificationDocument - Документ, удостоверяющий личность;
 
Cl_Intellect – Умственное развитие;
 
Cl_Location - Местонахождения;
 
Cl_MaritalStatus - Семейное положение;
 
Cl_MedicalReference - МКБ 10;
 
Cl_Nationality - Гражданство;
 
Cl_NeurologicBehavioralMaturation - Нервно-психическое развитие;
 
Cl_ParentCareLack - Причина отсутствия родительского попечения;
 
Cl_PatronageOrganization - Органы опеки и попечительства;
 
Cl_PhysicalGrowth - Физическое развитие;
 
Cl_PossibleSettleForm - Возможная форма устройства;
 
Cl_Purpose - Цель регистрации анкеты граждан;
 
Cl_Region - Регионы;
 
Cl_RelationDegree - Степень родства;
 
Cl_Sex - Пол;
 
Cl_VisitResult - Результаты посещения.
 
 Так же имеется ряд вспомогательных объектов, служащих для организации взаимных ссылок между объектами и других целей:
 
 
            Link_ChildArch - Ссылка между архивом детей и гражданами;
 
Link_MarkGroup - Ссылка между метками и детьми или гражданами;
 
Link_MedicalReference - Ссылка между МКБ 10 и детьми.
 
 2.2. Представление содержит графические формы, используемые в приложении для работы с объектами. В приложении применяются как статически созданные формы (файлы с расширением .ui), так и динамически генерируемые формы. К статически созданным формам относятся:
 
 
            AboutForm - Форма краткой информации о программе;
 
AdoptArchForm - Форма редактирования архивных анкет граждан;
 
AdoptChooseForm - Предварительная форма создания анкет граждан;
 
AdoptForm - Форма редактирования анкет граждан;
 
ChildArchForm - Форма редактирования архивных анкет детей;
 
ChildFirstForm – Форма редактирования первичного учета анкет детей;
 
ChildForm - Форма редактирования анкет детей;
 
ClassifierForm - Дополнительная форма отображения списков объектов;
 
DecodeForm - Форма, предназначенная для преобразования номеров анкет детей;
 
KinsfolkAddForm - Форма редактирования совершеннолетних родственников;
 
LifeConditionReportFom   Форма редактирования отчетов о жизни ребенка;
 
MainWindow - Главная форма приложения;
 
MeasureForm - Форма редактирования мер;
 
PrintDialog - Форма выбора шаблона печати;
 
SettingsForm - Форма редактирования настроек приложения;
 
SiblingAddForm - Форма редактирования несовершеннолетних родственников;
 
StatViewForm – Форма просмотра статистических отчетов;
 
SyncWizard - Многостраничная форма выполнения синхронизации (взаимодействует с Vipnet посредством файловой системы);
 
MarkGroupWidget - Часть SearchResultForm, виджет работы с метками.
 
 К динамически генерируемым формам относятся:
 
 
            SearchResultForm - Основная форма отображения списков объектов;
 
ClassifierEditForm - Форма редактирования справочников (перечислений);
 
TemplateController - Форма редактирования шаблонов;
 
PrintForm - Форма предварительного просмотра печати;
 
SearchQueryWidget - Часть SearchResultForm, виджет формирования поисковых запросов;
 
SearchLogicWidget - Часть SearchQueryWidget, виджет формирования логических запросов;
 
SearchLineWidget - Часть SearchQueryWidget, виджет формирования простых запросов.
 
 2.3. Контроллер предназначен для реализации логики предметной области и является основой приложения. Контроллер представляет собой совокупность контроллеров различного назначения (файлы с расширением .h и .cpp). В частности, для управления каждой графической формой реализован соответствующий контроллер. В системе можно выделить следующие контроллеры:
 
 
            MainController - контроллер главной формы приложения;
 
SecurityController - контроллер управления безопасностью (взимодействует с API СКЗИ Домен-К посредством Windows CryptoAPI);
 
DataController - контроллер работы с базой данных;
 
PrintController - контроллер печати;
 
srfController   основной контроллер отображения списков и ряд унаследованных от него контроллеров, таких как:
 
 - srfControllerAdopt - отображение списка анкет граждан;
 
 - srfControllerAdoptArch - отображение списка архивных анкет граждан;
 
 - srfControllerChild - отображение списка анкет детей;
 
 - srfControllerChildArch - отображение списка архивных анкет детей;
 
 - srfControllerChildFirst - отображение списка анкет первичного учета детей;
 
 - srfControllerGroupToArch - отображение списка анкет детей, которым исполнилось 18 лет для последующего их автоматического списания в архив;
 
 - srfControllerLog - отображение журнала изменений;
 
 - srfControllerMark – отображение меток;
 
 - srfControllerMeasure - отображение списка мер и др;
 
 - srfControllerNotification - отображение списка напоминаний;
 
 - srfControllerPreview - отображение списка анкет детей для последующего просмотра от имени гражданина;
 
 - srfControllerQuittance - отображение списка пакетов, на которые не пришли квитанции подтверждения о приеме;
 
 - srfControllerRejectedChild – отображение списка анкет детей, которые были отклонены вышестоящим уровнем;
 
 - srfControllerTemplate – отображение списка шаблонов печати;
 
 
            cfController - дополнительный контроллер отображения списков;
 
efController - контроллер формы редактирования объектов и ряд унаследованных от него контроллеров, таких как:
 
 - efControllerChild - контроллер формы «Анкета ребенка»;
 
 - efControllerAdopt - контроллер формы «Анкета гражданина»;
 
 - efControllerChildArch - контроллер формы «Архивная анкета ребенка»;
 
 - efControllerChildFirst - контроллер формы «Первичный учет анкеты ребенка»;
 
 - efControllerAdoptArch - контроллер формы «Архивная анкета гражданина»;
 
 - efControllerMeasure - контроллер формы «Мера» и др.
 
 2.4. К вспомогательным классам можно отнести:
 
 
            Criteria - класс, предназначенный для формирования поисковых запросов;
 
UpdateThread - класс, описывающий основной вспомогательный поток, используемый для отображения списков;
 
ObjectList - класс предназначен для ускорения обработки списков объектов;
 
Exception - класс, предназначенный для обработки исключительных ситуаций.
 
 |