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 - класс, предназначенный для обработки исключительных ситуаций.
|