Разработка комплексной автоматизированной системы управления бюро судебно-медицинской экспертизы для бюро судмедэкспертизы в г. Москва
Цели создания системы. Проектирование и разработка базы данных. Требования к структуре и функционированию системы. Перечень подсистем и их назначение. Требования к способам и средствам связи для информационного обмена между компонентами системы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 21.03.2019 |
Размер файла | 2,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на Allbest.ru
ВВЕДЕНИЕ
Целью данного дипломного проекта является разработка комплексной автоматизированной системы управления бюро судебно-медицинской экспертизы для бюро судмедэкспертизы, г. Москва.
Основная функция Бюро судебно-медицинской экспертизы Департамента здравоохранения Москвы заключается в производстве качественных судебно-медицинских экспертиз и исследований по заданиям правоохранительных органов.
Бюро судмедэкспертизы осуществляет следующие виды деятельности:
судебно-медицинская экспертиза (исследование) трупов
судебно-медицинская экспертиза (освидетельствование) потерпевших, обвиняемых и других лиц
Бюро состоит из:
Отдела обеспечения основной деятельности
Отделения приема, регистрации, выдачи тел и статистического учета
Отдела экспертизы потерпевших, обвиняемых и других лиц
Отдела комиссионных судебно-медицинских экспертиз
Отдела по перевозке тел умерших (погибших) граждан
Отдела специальных лабораторных исследований
Отделения судебно-гистологических исследований
Танатологических отделений
В настоящее время весь документооборот ведется в письменном виде, что усложняет ведение документов и поиск нужной информации. КАСУ БСМЭ облегчит работу с документами, а также сделает её быстрее, эффективнее и безопасней.
АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
Перечень сокращений и условных обозначений
В данной дипломной работе используется ряд сокращений и условных обозначений для удобства восприятия информации. Они перечислены в таблице 1.
Таблица 1 - Перечень сокращений и условных обозначений
Обозначение |
Описание |
|
Система |
Комплексная автоматизированная система управления Бюро судебно-медицинской экспертизы |
|
БСМЭ |
Бюро судебно-медицинской экспертизы |
|
ТО |
Танатологическое отделение |
|
СУБД |
Система управления базами данных |
|
AD |
Microsoft Active Directory |
|
АРМ КАСУ БСМЭ |
Автоматизированное рабочее место в ТО |
|
Центральная АРМ КАСУ БСМЭ |
Автоматизированное рабочее место для сотрудников центрального офиса |
|
УКТ |
Учетная карточка трупа |
|
ПО |
Программное обеспечение |
|
Web-Service |
Служба сервера для обмена зашифрованными сообщениями между сервером и клиентом посредством взаимодействия по протоколу TCP/IP |
|
UID |
Уникальный идентификационный номер трупа |
Описание предметной области
Система построена с помощью клиент - серверной архитектуры, обмен данными между клиентом и сервером осуществляется по протоколу TCP/IP. Территориально удаленные ТО объединены в виртуальную локальную сеть посредством VPN. Все компьютеры, работающие с системой, входят в единый домен AD.
Архитектура системы строиться из следующих подсистем:
Серверная подсистема - сервер приложения, обеспечивающий прием и передачу информации в СУБД.
База данных - предназначена для хранения информации.
Клиентские приложения - предназначены для работы пользователей с данными, получаемыми и передаваемыми от сервера приложения.
В системе предусмотрены следующие типы клиентских приложений:
АРМ ТО КАСУ БСМЭ - представляет собой клиентское приложение для работы всех сотрудников ТО. Обеспечивает функционал всех бизнес-процессов, протекающих в ТО.
Центральная АРМ КАСУ БСМЭ - представляет собой приложение для работы сотрудников Центрального офиса. Содержит частичный функционал АРМ КАСУ БСМЭ.
АРМ Секционных - представляет собой приложение для работы экспертов и лаборантов в секционных. Ограничена только функционалом проведения наружного и внутреннего исследований.
Цели создания системы
Внедряемая Система должна решать следующие задачи:
Обеспечение автоматизации функций, выполняемых танатологическими отделениями, входящими в состав БСМЭ г. Москвы
Обеспечение сотрудников регистратуры, экспертов и лаборантов танатологических отделений электронными средствами ведения информации
Создание системы автоматизированной статистической отчетности
ВЫБОР ТЕХНОЛОГИЙ РАЗРАБОТКИ
Выбор языка программирования
Для разработки системы использовался объектно-ориентированный стиль программирования. К этому стилю можно отнести такие языки программирования как C#, Java.
C# (произносится как «си шарп») - современный объектно-ориентированный и типобезопасный язык программирования. C# относится к широко известному семейству языков C, и покажется хорошо знакомым любому, кто работал с C, C++, Java или JavaScript.
C# является объектно-ориентированным языком, но поддерживает также и компонентно-ориентированное программирование. Разработка современных приложений все больше тяготеет к созданию программных компонентов в форме автономных и самоописательных пакетов, реализующих отдельные функциональные возможности. Важная особенность таких компонентов - это модель программирования на основе свойств, методов и событий. Каждый компонент имеет атрибуты, предоставляющие декларативные сведения о компоненте, а также встроенные элементы документации. C# предоставляет языковые конструкции, непосредственно поддерживающие такую концепцию работы. Благодаря этому C# отлично подходит для создания и применения программных компонентов.
Вот лишь несколько функций языка C#, обеспечивающих надежность и устойчивость приложений: сборка мусора автоматически освобождает память, занятую уничтоженными и неиспользуемыми объектами; обработка исключений дает структурированный и расширяемый способ выявлять и обрабатывать ошибки; строгая типизация языка не позволяет обращаться к неинициализированным переменным, выходить за пределы массива или выполнять неконтролируемое приведение типов.
В C# существует единая система типов. Все типы C#, включая типы-примитивы, такие как int и double, наследуют от одного корневого типа object. Таким образом, все типы используют общий набор операций, и значения любого типа можно хранить, передавать и обрабатывать схожим образом. Кроме того, C# поддерживает пользовательские ссылочные типы и типы значений, позволяя как динамически выделять память для объектов, так и хранить упрощенные структуры в стеке.
Чтобы обеспечить совместимость программ и библиотек C# при дальнейшем развитии, при разработке C# много внимания было уделено управлению версиями. Многие языки программирования обходят вниманием этот вопрос, и в результате программы на этих языках ломаются чаще, чем хотелось бы, при выходе новых версий зависимых библиотек. Вопросы управления версиями существенно повлияли на такие аспекты разработки C#, как раздельные модификаторы virtual и override, правила разрешения перегрузки методов и поддержка явного объявления членов интерфейса. [1]
Java - сильно типизированный объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems.
Изначально разрабатывался как язык для программирования электронных устройств, но позже стал использоваться для написания приложений серверного ПО. Программы на Java - кроссплатформенные, то есть способны работать на любых операционных системах.
Java как язык с поддержкой объектного ориентирования отвечает основным принципам ООП:
Наследование
Полиморфизм
Инкапсуляция
Для разработки был выбран язык программирования - C#. Решающими факторами при выборе стали:
Один из самых стабильных и развивающихся языков
Полная совместимость с ОС Windows
Множество готовых библиотек для расширения функционала [2]
Выбор системы управления базами данных
Система управления базами данных (или сокращенно СУБД) представляет собой программное обеспечение, которое используется для создания и работы с базами данных. Главная функция СУБД - это управление данными (которые могут быть как во внешней, так и в оперативной памяти). СУБД обязательно поддерживает языки баз данных, а также отвечает за копирование и восстановление данных после каких-либо сбоев.
Информация, которая хранится в базах данных, не ограничивается только текстовыми или графическими файлами - современные версии СУБД поддерживают также форматы аудио и видеофайлов.
Основные функции СУБД
управление данными во внешней памяти (на дисках) ;
управление данными в оперативной памяти с использованием дискового кэша;
журнализация изменений, резервное копирование и восстановление базы данных после сбоев;
поддержка языков БД (язык определения данных, язык манипулирования данными).
При выборе СУБД рассматривались 2 реляционные базы данных - MySQL, PostrgeSQL.
MySQL является одной из самых популярных и распространенных СУБД, которая используется во многих компаниях (например, Facebook, Wikipedia, Twitter, LinkedIn, Alibaba и других). MySQL представляет собой реляционную СУБД, которая относится к свободному программному обеспечению: она распространяется на условиях GNU Public License. Как правило, эту систему управления базами данных определяют как хорошую, быструю и гибкую систему, рекомендованную к применению в небольших или средних проектах. У MySQL есть множество различных преимуществ. Например, она поддерживает различные типы таблиц: как известные MyISAM и InnoDB, так и более экзотичные HEAP и MERGE; кроме того, количество поддерживаемых типов постоянно растет. MySQL выполняет все команды быстро - возможно, сейчас это самая быстрая СУБД из всех существующих. С этой системой управления базами данных может одновременно работать неограниченное количество пользователей, а число строк в таблицах может быть равно 50 миллионам.
Так как в сравнении с некоторыми другими СУБД MySQL поддерживает меньшее количество возможностей, то и работать с ней значительно проще, чем, к примеру, с PostgreSQL, о которой будет рассказано ниже.
Первая версия MySQL вышла в 1995 году, и с тех пор состоялось несколько последующих релизов, каждый из которых нес в себе значительные изменения.
Для работы с MySQL используется не только текстовый, но и графический режим. Это возможно благодаря приложению phpMyAdmin: для работы в приложении вам даже не нужно будет знать SQL-команды, а администрировать свою базу данных можно прямо через браузер. [3]
PostgreSQL
Эта свободно распространяемая система управления базами данных относится к объектно-реляционному типу СУБД. Как и в случае с MySQL, работа с PostgreSQL основывается на языке SQL, однако, в отличие от MySQL, PostgreSQL поддерживает стандарт SQL-2011. Эта СУБД не имеет ограничений ни по максимальному размеру базы данных, ни по максимуму записей или индексов в таблице.
Сильными сторонами PostgreSQL считаются:
высокопроизводительные и надёжные механизмы транзакций и репликации
расширяемая система встроенных языков программирования
наследование
легкая расширяемость
PostgreSQL не просто реляционная, а объектно-реляционная СУБД. Это даёт ей некоторые преимущества над другими SQL базами данных с открытым исходным кодом, такими как MySQL, MariaDB и Firebird.
Фундаментальная характеристика объектно-реляционной базы данных - это поддержка пользовательских объектов и их поведения, включая типы данных, функции, операции, домены и индексы. Это делает PostgreSQL невероятно гибким и надежным. Среди прочего, он умеет создавать, хранить и извлекать сложные структуры данных. В некоторых примерах ниже вы увидите вложенные и составные конструкции, которые не поддерживаются стандартными РСУБД. [4]
Именно по - этому в качестве СУБД выбрана PostrgeSQL.
Выбор среды разработки
IDE (англ. Integrated development environment) - интегрированная среда разработки, также единая среда разработки (ЕСР) - комплекс программных средств, используемый программистами для разработки программного обеспечения (ПО). [5]
Основной средой разработки при использовании C# является Microsoft Visual Studio.
Microsoft Visual Studio - линейка продуктов компании Microsoft, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Windows, Windows Mobile, Windows CE,. NET Framework, Xbox, Windows Phone. NET Compact Framework и Silverlight. [6]
Плюсы:
Официальная. Так, как и язык, и среда разработки созданы в Microsoft, логично предположить, что ничего более функционального не найти во всем Интернете. В некоторых случаях без Visual Studio не обойтись - например, при использовании технологий UWP и WPF.
Бесплатная. Версии «Community Edition» для рядового пользователя будет достаточно.
Функциональная. В Visual Studio множество качественных плагинов. С их помощью можно расширить функциональность приложения и подключить другие языки.
Поддерживает платформы. NET. Visual Studio имеет широкие возможности по разработке приложений под Windows, в том числе в. NET-сегменте.
Облачные хранилища. Зарегистрировавшись в сообществе Visual Studio, мы получаем доступ к облачному хранилищу, где можно располагать файлы проектов.
Корпоративность. Технология бэклога позволяет членам команды взаимодействовать при гибкой методологии разработки.
Выбор вспомогательных средств разработки
Совместно с Visual Studio использовались такие инструменты как ReSharper и dotMemory.
ReSharper (R#) - дополнение (плагин), разработанное компанией JetBrains для повышения продуктивности работы в Microsoft Visual Studio.
Проводит статический анализ кода (поиск ошибок в коде до компиляции) в масштабе всего решения, предусматривает дополнительные средства автозаполнения, навигации, поиска, подсветки синтаксиса, форматирования, оптимизации и генерации кода, предоставляет 40 автоматизированных рефакторингов, упрощает юнит-тестирование в средах MSTest и NUnit и др. Поддерживает языки программирования C#, C++, JavaScript, TypeScript и VB. NET, а также предоставляет средства для работы с ASP. NET, ASP. NET MVC, XML, XAML, HTML, CSS, сценариями сборки NAnt и MSBuild. [7]
dotMemory - это профилировщик памяти для. NET-приложений, позволяющий оптимизировать использование памяти, находить и устранять утечки памяти.
dotMemory позволяет:
Найти объекты, которые не были должным образом утилизированы, тем самым предотвратив утечки памяти.
Провести анализ использования памяти с помощью нескольких видов представления данных, в зависимости от конкретного случая.
Отследить присутствие объектов, которые потребляют большое количество памяти, а также сравнить любые два состояния памяти во время работы приложения.
Выявить загрузку ненужных объектов в память путем формирования снимков (дампов) памяти во время выполнения программы.
Сравнить состояния памяти в начале и конце некоторого временного интервала. [8]
ХАРАКТЕРИСТИКА ОБЪЕКТА АВТОМАТИЗАЦИИ
Государственное бюджетное учреждение здравоохранения города Москвы «Бюро судебно-медицинской экспертизы Департамента здравоохранения города Москвы» состоит из следующих подразделений:
Танатологические отделения №№1-13;
Отдел по перевозке тел умерших (погибших) ;
Судебно-гистологический отдел;
Биохимическое отделение;
Отделение биологических и молекулярно-генетических исследований;
Отделение общих химических методов исследования;
Зональная спектральная лаборатория;
Медико-криминалистическое отделение;
Отделение газохроматографических методов исследований;
Отдел экспертизы потерпевших, обвиняемых и других лиц;
Отдел комиссионных судебно-медицинских экспертиз;
Трупохранилище;
Количество пользователей системы - 425.
РАЗРАБОТКА СИСТЕМЫ
Архитектура системы
При разработке средних и сложных проектов важно заложить правильную архитектуру, т. к. от этого зависит вся дальнейшая работа. Проект с плохой архитектурой будет требовать больше сил и времени разработчика на создание нового функционала или поиск решения ошибки. Такой проект может использовать дополнительные инструменты, которые усложнят понимание работы системы.
Система будет состоять из нескольких проектов.
Domain (проект 1)
Начнем разработку с создания Domain Layer (доменный слой). Доменный слой содержит все бизнес - сущности системы. Бизнес - сущность (Entity) описывает таблицу БД и представляет собой класс с публичными свойствами - полями таблицы. Помимо описания полей класс содержит бизнес логику, связанную с этой сущностью.
Ниже приведен листинг сущности «Material».
using System;
using CorpseAccount. CommonTypes. Enums;
using CorpseAccount. Infrastructure. Domain;
namespace CorpseAccount. Domain. Entities
{
/// <summary>
/// Информация о материале
/// </summary>
public class Material: Entity
{
/// <summary>
/// УКТ, которой принадлежит файл
/// </summary>
public virtual AccountCorpseCard Card { get; set; }
/// <summary>
/// Категория файла
/// </summary>
public virtual MaterialCategory Category { get; set; }
/// <summary>
/// Бинарный массив, представляющий файл.
/// </summary>
public virtual MaterialData Data { get; set; }
/// <summary>
/// Расширение
/// Пример:. exe
/// </summary>
public virtual string Extension { get; set; }
/// <summary>
/// Имя файла
/// Пример: run. exe
/// </summary>
public virtual string FileName { get; set; }
/// <summary>
/// Определяет, помечен ли файл на удаление
/// </summary>
public virtual bool IsDeleted { get; set; }
/// <summary>
/// MIME-тип файла
/// </summary>
public virtual string MimeType { get; set; }
/// <summary>
/// Дата и время загрузки материала
/// </summary>
public virtual DateTime UploadDateTime { get; set; }
/// <summary>
/// Видимое имя файла
/// Пример: run
/// </summary>
public virtual string VisibleName { get; set; }
}
}
DTO (проект 2)
Data Transfer Object - один из шаблонов проектирования, используется для передачи данных между подсистемами приложения.
На каждую бизнес сущность создается по одному DTO. Каждая DTO содержит только те поля, которые мы хотим передать между приложением. В отличии от бизнес - сущности DTO не содержит логику.
Ниже приведен листинг DTO «MaterialDto»:
using System;
using System. Runtime. Serialization;
using CorpseAccount. CommonTypes. Enums;
namespace CorpseAccount. Dto
{
/// <summary>
/// Информация о материале
/// </summary>
[Serializable]
[DataContract]
public class MaterialDto: EntityDto
{
/// <summary>
/// Категория файла
/// </summary>
[DataMember]
public virtual MaterialCategory Category { get; set; }
/// <summary>
/// Расширение
/// </summary>
[DataMember]
public virtual string Extension { get; set; }
/// <summary>
/// Имя файла
/// </summary>
[DataMember]
public virtual string FileName { get; set; }
/// <summary>
/// Определяет, помечен ли файл на удаление
/// </summary>
[DataMember]
public virtual bool IsDeleted { get; set; }
/// <summary>
/// MIME-тип файла
/// </summary>
[DataMember]
public virtual string MimeType { get; set; }
/// <summary>
/// Видимое имя файла
/// </summary>
[DataMember]
public virtual string VisibleName { get; set; }
}
}
DAL (проект 3)
Слой доступа к данным (Data Access Layer - DAL) - это слой компьютерной программы, который предоставляет упрощенный доступ к данным, хранимым в постоянном хранилище, таком как реляционная база данных.
Задача этого проекта связать бизнес - сущность с конкретной таблицей в БД с помощью специальных классов - «маппингов».
Класс содержит конструктор, где для каждого поля таблицы указывается свойство сущности, а также ссылки и внешние ключи.
Ниже приведен пример «маппинга» «MaterialMap»:
using CorpseAccount. Dal. Extentions;
using CorpseAccount. Domain. Entities;
using FluentNHibernate. Mapping;
namespace CorpseAccount. Dal. Maps
{
internal class MaterialMap: ClassMap<Material>
{
public MaterialMap ()
{
Table («Materials») ;
Id (p => p. Id). GuidForeignPrimaryKey (nameof (Material. Data)) ;
Map (context => context. VisibleName). Column («VisibleName») ;
Map (context => context. Extension). Column («Extension») ;
Map (context => context. FileName). Column («FileName») ;
Map (context => context. MimeType). Column («MimeType») ;
Map (context => context. IsDeleted). Column («IsDeleted») ;
Map (context => context. Category). Column («Category»). CustomType<int> () ;
References (card => card. Card, «CardId»). Nullable () ;
HasOne (x => x. Data)
. Constrained ()
. ForeignKey () ;
}
}
}
Помимо «маппингов» в проекте находится реализация репозитория, миграции.
Репозиторий - паттерн, используемый при работе с данными. Он позволяет абстрагироваться от конкретных подключений к источникам данных, с которыми работает программа, и является промежуточным звеном между классами, непосредственно взаимодействующими с данными, и остальной программой.
Класс репозитория реализует методы для манипулирования данными - Get, Update, Create, Delete.
Common (проект 4)
По мере разработки мы будем использовать интерфейсы, константы, вспомогательные классы - хелперы, которые используются в других проектах. Вынесем их в отдельный проект.
Логически разбитые константы заключаются в Enums - перечисления. Такой подход позволяет облегчить работу тем, что можно быстро изменить значение константы только в одном месте и не искать где она используется.
Пример такого перечисления приведен ниже:
using System;
using System. ComponentModel;
namespace CorpseAccount. CommonTypes. Enums
{
/// <summary>
/// Список типов запросов на выдачу документов
/// </summary>
[Serializable]
public enum ActConclusionType
{
[Description («Акт») ]
Act = 0,
[Description («Заключение») ]
Conclusion = 1
}
}
Теперь, когда у нас есть все необходимые данные перейдем к реализации серверной части. Сервер будет состоять из WCF - сервисов, позволяющих передавать данные между клиентом и сервером.
Windows Communication Foundation - программный фреймворк, используемый для обмена данными между приложениями, входящий в состав. NET Framework. До своего выпуска в декабре 2006 года в составе. NET Framework 3. 0, WCF был известен под кодовым именем Indigo.
WCF делает возможным построение безопасных и надёжных транзакционных систем через упрощённую унифицированную программную модель межплатформенного взаимодействия. Комбинируя функциональность существующих технологий. NET по разработке распределённых приложений (ASP. NET XML Web Services - ASMX, WSE 3. 0,. NET Remoting,. NET Enterprise Services и System. Messaging), WCF предоставляет единую инфраструктуру разработки, при умелом применении повышающую производительность и снижающую затраты на создание безопасных, надёжных и транзакционных Web-служб нового поколения. Заложенные в неё принципы интероперабельности позволяют организовать работу с другими платформами, для чего используются технологии взаимодействия платформ, например, WSIT, разрабатываемые на базе открытого исходного кода. [9]
WCF - сервис состоит из интерфейса и его реализации. Пример интерфейса и реализации приведен ниже.
Интерфейс:
using System;
using System. Collections. Generic;
using System. ServiceModel;
using System. Threading. Tasks;
using CorpseAccount. Dto;
namespace CorpseAccount. Application. Common. Services
{
[ServiceContract]
public interface IAdditionalResearchDataService
{
/// <summary>
/// Возвращает список анализов по Id.
/// </summary>
/// <returns></returns>
[OperationContract]
Task<IEnumerable<AdditionalResearchDataDto>> GetAnalysisAsync (Guid id) ;
/// <summary>
/// Возвращает список документов по Id.
/// </summary>
/// <returns></returns>
[OperationContract]
Task<IEnumerable<AdditionalResearchDataDto>> GetDocumentsAsync (Guid id) ;
}
}
Реализация:
using System;
using System. Collections. Generic;
using System. Threading. Tasks;
using CorpseAccount. Application. Common. Extensions;
using CorpseAccount. Application. Common. Services;
using CorpseAccount. Application. FetchStrategy;
using CorpseAccount. Application. Specifications. DirectionStudy;
using CorpseAccount. Application. Specifications. RequestAdditionalDocuments;
using CorpseAccount. Domain. Entities;
using CorpseAccount. Dto;
using CorpseAccount. Infrastructure. Domain;
using CorpseAccount. Infrastructure. Factory;
namespace CorpseAccount. Application. Services
{
public class AdditionalResearchDataService: ServiceBase, IAdditionalResearchDataService
{
private readonly IRepository<DirectionStudy> _directionStudy;
private readonly IUnitOfWorkFactory _factory;
private readonly IRepository<RequestAdditionalDocuments> _requestDocuments;
public AdditionalResearchDataService (IUnitOfWorkFactory factory,
IRepository<DirectionStudy> directionStudy, IRepository<RequestAdditionalDocuments> requestAdditionalDocuments)
{
_factory = factory;
_directionStudy = directionStudy;
_requestDocuments = requestAdditionalDocuments;
}
public async Task<IEnumerable<AdditionalResearchDataDto>> GetAnalysisAsync (Guid id)
{
return await InvokeAsyncWithErrorHandler (() =>
{
using (_factory. Create ())
{
var strategy = new DirectionStudyBasicStrategy () ;
var documents = _directionStudy. FindAll (new HasDirectionStudyByCardId (id), strategy) ;
var map = documents. MapEachTo<AdditionalResearchDataDto> () ;
return map;
}
}) ;
}
public async Task<IEnumerable<AdditionalResearchDataDto>> GetDocumentsAsync (Guid id)
{
return await InvokeAsyncWithErrorHandler (() =>
{
using (_factory. Create ())
{
var strategy = new RequestAdditionalDocumentsBasicStrategy () ;
var documents = _requestDocuments. FindAll (new HasRequestAdditionalDocsByCardId (id), strategy) ;
var map = documents. MapEachTo<AdditionalResearchDataDto> () ;
return map;
}
}) ;
}
}
}
После создания сервисов остается создать консольное приложение, которое осуществит их запуск и зарегистрирует необходимые зависимости. На этом разработку серверной части можно считать завершенной.
Для размещения серверной части потребуется несколько физических серверов. Их список с характеристиками и назначением представлен в таблице 2.
Таблица 2 - Сервера Системы
Сервер |
Характеристики |
Описание |
Протоколы и режим обмена информацией |
|
Центральный сервер СУБД |
2 х Intel Xeon E5, 16 Гб RAM, 300 ГБ HDD MS Windows 2008 Server, PostgreSQL 9 |
Головной сервер баз данных, предназначенный для хранения всей информации, содержащейся в Системе. Сервер интеграции с АСУ «Транспортировка». |
Обмен с локальными серверами ТО осуществляется по протоколу TCP/IP посредством прямых запросов в Базу Данных. Обмен с АСУ «Транспортировка» посредством запроса к методам WebService обоих систем. |
|
Локальные сервера СУБД и приложения |
2 х Intel Xeon E5, 16 Гб RAM, 300 ГБ HDD MS Windows 2008 Server, PostgreSQL 9, сервер КАСУ БСМЭ |
Локальные сервера баз данных, расположенные на территории ТО. Предназначены для: хранения информации об объектах учета, принадлежащих ТО, обмена информации с головным сервером СУБД, передачи информации на АРМ КАСУ БСМЭ. |
Обмен с головным сервером осуществляется в режиме реального времени по протоколу TCP/IP посредством прямых запросов в СУБД. Обмен данными с АРМ осуществляется по протоколу TCP/IP посредством обращений клиентов к WebService'ам сервера. Обмен с АСУ Транспортировка осуществляется посредством обращения к WebService'у системы. |
|
АРМ КАСУ БСМЭ |
Intel Pentium >= 2GHz 1 GB RAM 10 GB HDD Windows 7 Клиент КАСУ БСМЭ |
Предназначен для работы пользователей с Системой. |
Обмен осуществляется только с локальным сервером СУБД и приложений по протоколу TCP/IP посредством обращения к WebService'ам сервера КАСУ БСМЭ |
|
Центральная АРМ КАСУ БСМЭ |
Intel Pentium >= 2GHz 1 GB RAM 10 GB HDD Windows 7 Клиент КАСУ БСМЭ |
Предназначена для работы пользователей с Системой. |
Обмен осуществляется с головным сервером по протоколу TCP/IP посредством обращения к WebService'ам сервера. |
|
АРМ Секционных |
Windows СЕ Клиент КАСУ БСМЭ |
Предназначена для работы экспертов и лаборантов в секционных |
Обмен осуществляется с головным сервером по протоколу TCP/IP посредством обращения к WebService'ам сервера. |
Архитектура системы представлена на рисунке №1.
Рисунок 1 - Архитектура системы
Проектирование и разработка базы данных
В базе данных будут храниться все данные связанные с организацией работы в отделениях. Так как данных много разобьем их логически по таблицам.
Рассмотрим основные таблицы.
Работа в бюро ведется в нескольких танатологических отделениях, соответственно для каждого отделения свои данные.
Создадим таблицу для хранения информации по ТО, структура таблицы приведена в таблице 3.
Таблица 3 - Структура таблицы «Танатологические отделения»
Наименование |
Комментарий |
Тип |
|
DepartmentId |
Идентификатор |
UUID |
|
Department |
Название (номер) ТО |
VARCHAR (128) |
|
Address |
Адрес ТО |
VARCHAR (255) |
В каждом ТО работают сотрудники заведем для них отдельную таблицу, структура приведена в таблице 4.
Таблица 4 - Структура таблица «Пользователи»
Наименование |
Комментарий |
Тип |
|
UserId |
Идентификатор |
UUID |
|
FullName |
ФИО |
VARCHAR (255) |
|
PositionId |
Должность, ссылка на справочник «Positions» |
UUID |
|
DepartmentId |
ТО, ссылка на справочник «Departments» |
UUID |
Далее, создадим таблицу, в которой будут содержаться основные данные УКТ, структура описана в таблице 5.
Таблица 5 - Структура таблицы «УКТ»
Наименование |
Комментарий |
Тип |
|
BodyId |
Идентификатор |
UUID |
|
SocialGroupId |
Социальная группа, ссылка на справочник «SocialGroups» |
UUID |
|
PlaceId |
Откуда поступил, ссылка на справочник «PlacesOfOrigin» |
UUID |
|
DistrictId |
Округ, ссылка на справочник «Districts» |
UUID |
|
ECId |
Основание производства экспертизы, ссылка на справочник «ExminationCauses» |
UUID |
|
ExpertID |
Ответственный эксперт, ссылка на справочник «Users» |
UUID |
|
DepartmentId |
ТО, ссылка на справочник «Departments» |
UUID |
|
RegistorId |
Регистратор, ссылка на справочник «Users» |
UUID |
|
Наименование |
Комментарий |
Тип |
|
StateId |
Состояние УКТ, ссылка на справочник «BodyCardStates» |
UUID |
|
OrderId |
Номер наряда, ссылка на справочник «Orders» |
UUID |
|
EditorId |
Пользователь, изменивший УКТ, ссылка на справочник «Users» |
UUID |
|
Gender |
Возраст |
NUMERIC |
|
PlaceOfLiving |
Место жительства, ID значения в списке |
UUID |
|
FullName |
ФИО |
TEXT |
|
DateOfBirth |
Дата рождения |
DATE |
|
Age |
Возраст |
NUMERIC |
|
Address |
Адрес места жительства |
TEXT |
|
Relationship |
Семейное положение, ID значения в списке |
UUID |
|
Education |
Образование, ID значения в списке |
UUID |
|
DateOfDelivery |
Дата поступления |
DATE |
|
OP |
О/П |
VARCHAR (64) |
|
StreetFrom |
Улица поступления |
VARCHAR (255) |
|
BuildingNumber |
Номер дома |
VARCHAR (32) |
|
Korpus |
Корпус |
VARCHAR (8) |
|
FlatNumber |
Квартира |
VARCHAR (12) |
|
DescriptionOfPlace |
Описание места обнаружения |
Text |
|
RegistrationNumber |
Регистрационный номер |
VARCHAR (128) |
|
Version |
Номер версии УКТ |
DECIMAL |
|
CurrentVersion |
Признак текущей версии |
BOOL |
Помимо основных данных для каждого трупа есть карта судебно-медицинской экспертизы (таблица 6), акты и заключения (таблица 7), вскрытия (таблица 8), обстоятельства (таблица 9), словесные портреты (таблица 10), клинические диагнозы (таблица 11).
Таблица 6 - Структура таблицы «Карты СМЭ»
Наименование |
Комментарий |
Тип |
|
FMECardId |
Идентификатор |
UUID |
|
AutopsyTypeId |
Вид вскрытия, ссылка на справочник «AutopsyTypes» |
UUID |
|
DeathCauseId |
Причина смерти, ссылка на справочник «DeathCauses» |
UUID |
|
DeathCategoryId |
Категория смерти, ссылка на справочник «Категории смерти» |
UUID |
|
IlnessId |
Заболевание, ссылка на справочник «Ilnesses» |
UUID |
|
DrugId |
Наркотик, ссылка на справочник «Drugs» |
UUID |
|
MedicalDefectId |
Дефекты оказания медицинской помощи, ссылка на справочник «MedicalDefects» |
UUID |
|
BodyId |
Идентификатор УКТ |
UUID |
|
DeathDate |
Дата смерти |
DATE |
|
DeathType |
Вид смерти |
NUMERIC |
|
HIV |
ВИЧ |
BOOL |
|
ImmunoblotNuber |
Номер иммуноблота |
VARCHAR (64) |
|
ImmunoblotDate |
Дата иммуноблота |
DATE |
|
Tuberculosis |
Туберкулез |
BOOL |
|
Alcohol |
Признак присутствия алкоголя в анализе крови |
BOOL |
|
UrinePercent |
% алкоголя в моче |
NUMERIC |
|
BloodPercent |
% алкоголя в крови |
NUMERIC |
|
Drugs |
Признак присутствия наркотиков в анализе крови |
BOOL |
|
DiagnoseCompare |
Признак сличения диагнозов |
BOOL |
|
DateOfResearchFinish |
Дата окончания исследований/экспертизы |
DATE |
|
DestructionDescribe |
Характер повреждений |
TEXT |
|
Version |
Версия раздела УКТ |
DECIMAL |
|
CurrentVersion |
Признак текущей версии |
BOOL |
Таблица 7 - Структура таблицы «Акты»
Наименование |
Комментарий |
Тип |
|
ActId |
Идентификатор |
UUID |
|
BodyId |
Идентификатор УКТ |
UUID |
|
LawOrganisationID |
Правоохранительные органы, ссылка на справочник «LawOrganisations» |
UUID |
Продолжение таблицы 7
Наименование |
Комментарий |
Тип |
|
ActType |
Тип выданного заключения, ID значения в списке |
UUID |
|
ResearchDate |
Дата сдачи экспертизы |
DATE |
|
Permission |
Разрешение |
BOOL |
|
Position |
Должность адресата |
VARCHAR (255) |
|
LawOrganisationName |
Наименование правоохранительного органа |
VARCHAR (255) |
|
FIO |
ФИО кому выдано |
TEXT |
|
Document |
Тип документа, ID значения в списке |
UUID |
|
DocumentNumber |
Номер документа |
VARCHAR (32) |
|
DocumentDate |
Дата выдачи документа |
DATE |
|
Application |
Приложения к акту/заключению |
TEXT |
|
Version |
Версия раздела УКТ |
DECIMAL |
|
CurrentVersion |
Признак текущей версии |
BOOL |
Таблица 8 - Структура таблицы «Вскрытия»
Наименование |
Комментарий |
Тип |
|
AutopsyId |
Идентификатор |
UUID |
|
ExpertId |
Эксперт, проводивший вскрытие, ссылка на справочник «Users» |
UUID |
|
LaborantId |
Лаборант, проводивший вскрытие, ссылка на справочник «Users» |
UUID |
|
DeathCauseId |
Причина смерти, ссылка на справочник «DeathCauses» |
UUID |
|
BodyId |
Идентификатор УКТ |
UUID |
|
Illness |
Болезнь или состояние, непосредственно приведшее к смерти |
TEXT |
|
Pathology |
Патологическое состояние, которое привело к возникновению вышеуказанной причины |
TEXT |
|
OriginalDeathCause |
Первоначальная причина смерти |
TEXT |
|
ExternalCause |
Внешняя причина при травмах и отправлениях |
TEXT |
|
AdditionalInrformation |
Прочие важные состояния, способствующие смерти |
TEXT |
Продолжение таблицы 8
Наименование |
Комментарий |
Тип |
|
Issued |
Что оформлено, ИД значения списка (Акт, Заключение, Акт+Заключение) |
NUMERIC |
|
Version |
Версия записи |
DECIMAL |
|
CurrentVersion |
Признак текущей версии |
BOOL |
Таблица 9 - Структура таблицы «Обстоятельства»
Наименование |
Комментарий |
Тип |
|
ConditionId |
Идентификатор |
UUID |
|
BodyId |
Идентификатор УКТ |
UUID |
|
Condition |
Обстоятельство |
TEXT |
|
Version |
Номер версии УКТ |
DECIMAL |
|
CurrentVersion |
Признак текущей версии |
BOOL |
Таблица 10 - Структура таблицы «Словесные портреты»
Наименование |
Комментарий |
Тип |
|
PorttraitId |
Идентификатор |
UUID |
|
BodyId |
Идентификатор УКТ |
UUID |
|
Porttrait |
Словесный портрет |
TEXT |
|
Version |
Номер версии УКТ |
DECIMAL |
|
CurrentVersion |
Признак текущей версии |
BOOL |
Таблица 11 - Структура таблицы «Клинические диагнозы»
Наименование |
Комментарий |
Тип |
|
CDiagnoseId |
Идентификатор |
UUID |
|
BodyId |
Идентификатор УКТ |
UU... |
Подобные документы
Перечень подсистем, их назначение и основные характеристики. Требования к режимам функционирования системы. Концептуальное, физическое и реляционное проектирование. Программно-информационное ядро базы. Интерфейс программы, требования к надежности.
курсовая работа [3,7 M], добавлен 14.04.2014Проектирование автоматизированных систем обработки информации и управления. Анализ структуры и деятельности предприятия, создание моделей "Как есть". Определение проблемных областей предприятия. Требования к структуре и функционированию системы.
курсовая работа [611,4 K], добавлен 29.12.2012Разработка элементов системы электронного документооборота бюро учета расчетов с рабочими и служащими ОАО "НасосМаш". Требования к автоматизированной информационной системе. Обеспечение логической целостности базы данных и определение размера премии.
курсовая работа [2,4 M], добавлен 28.04.2012Проектирование базы данных для автоматизированной системы "Склад". Разработка концептуальной модели (ER-диаграмма). Преобразование в реляционную модель и ее нормализация. Разработка запросов к базе данных на языке SQL. Скрипт для создания базы данных.
курсовая работа [161,8 K], добавлен 07.10.2013Современные базы данных и систем управления ими. Методы построения их приложений. Разработка СУБД на примере "Бюро находок", обеспечивающей пользователю возможности по пополнению, редактированию, просмотру и анализу базы данных. Реализация БД в MS Access.
курсовая работа [3,4 M], добавлен 19.06.2012Использование автоматизированных баз данных в деятельности бюро по найму - способ облегчения деятельности сотрудников и повышения качества обслуживания клиентов. Разработка пользовательского интерфейса главной кнопочной формы информационной системы.
курсовая работа [1,4 M], добавлен 25.04.2019Создание автоматизированной системы учета заказов и их выполнения в строительной фирме по ремонту квартир. Общие требования к информационной системе. Проектирование структуры базы данных. Построение ER-диаграммы. Реализация информационной системы.
курсовая работа [750,2 K], добавлен 24.03.2014Создание информационной системы для автоматизации проведения анкетирования среди студентов и преподавателей учебных заведений. Требования к структуре и функционированию системы, программному обеспечению. Проектирование логической модели базы данных.
курсовая работа [2,4 M], добавлен 08.03.2016Описание салона-магазина по предоставлению услуг оператора мобильной связи. Обоснование создания автоматизированной информационной системы "Оператор". Выбор программного обеспечения, проектирование реляционной базы данных. Описание основ интерфейса.
дипломная работа [1,9 M], добавлен 27.05.2015Иерархическая модель данных. Основные элементы сетевой модели данных. Требования заказчика. Разработка автоматизированной системы управления "Преподаватели". Описание этапов разработки. Установка связей между таблицами. Резервирование базы данных в SQL.
курсовая работа [1,3 M], добавлен 10.02.2014Разработка автоматизированной информационной системы учета заказов на выполнение работ и формированию отчетной документации Бюро технической инвентаризации (БТИ). Системный анализ и схема документооборота. Разработка инфологической модели данных.
дипломная работа [603,9 K], добавлен 29.08.2014Анализ предметной области и разработка информационного обеспечения автоматизированной информационной системы "Система тестирования". Проектирование базы данных методом "Сущность-Связь". Технология создания базы в MS Access. Real-time работа системы.
курсовая работа [4,5 M], добавлен 23.12.2014Детализация функций системы и требования к информационной системе. Анализ категорий пользователей. Этапы внедрения автоматизированной информационной системы на предприятии. Описание таблиц базы данных. Защита данных от несанкционированного доступа.
дипломная работа [1,0 M], добавлен 22.07.2015Разработка системы для автоматизации процессов подготовки и отправки сообщений деловым партнерам организации по электронной почте. Требования к структуре и функционированию данной системы, основные этапы ее создания и порядок введения в действие.
курсовая работа [1,4 M], добавлен 20.11.2013Создание системы информационного обмена для страховой медицинской организации. Разработка алгоритмов, интерфейса пользователя, экранных форм и отчетов, процедур и функций приложения. Расчет цены разработанной программы, капитальных вложений и расходов.
дипломная работа [1,4 M], добавлен 20.07.2014Создание системного проекта автоматизированного документооборота на стадии работы с клиентом по сбору заказов интернет-магазина ООО "Добрыня". Требования к структуре и функционированию системы. Разработка информационных моделей данных в нотации IDEF1X.
курсовая работа [5,6 M], добавлен 07.08.2013Обзор медицинских информационных систем. Анализ и моделирование автоматизированной системы "Регистратура". Требования к составу и параметрам вычислительной системы. Обоснование выбора системы управления базами данных. Разработка инструкции пользователя.
дипломная работа [1,2 M], добавлен 14.10.2012Описание системы-прототипа по видам обеспечения. Недостатки системы учета. Информация, подлежащая структуризации и системной организации. Исходящие и входящие информационные потоки. Проектирование базы данных предприятия. Разработка моделей базы данных.
курсовая работа [3,2 M], добавлен 03.07.2012Концептуальная модель базы данных "Бюро по трудоустройству". Разработка информационного и программного обеспечения объектов автоматизации. Реализация базы данных в СУБД MsAccess. Запросы к базе данных. Таблицы, отчеты и макросы. Интерфейс пользователя.
курсовая работа [5,2 M], добавлен 30.05.2016Техническое задание на разработку автоматизированной системы и складского учета управления универсальной торговой базы. Проектирование информационной системы и выбор среды для создания программного продукта. Создание интерфейса и руководство пользователя.
дипломная работа [2,1 M], добавлен 11.07.2015