Разработка автоматизированной информационной системы учета продаж фармацевтических препаратов

Автор работы: Пользователь скрыл имя, 18 Сентября 2013 в 05:31, дипломная работа

Краткое описание

Целью дипломного проекта является разработка информационной системы для автоматизации процесса работы с поставщиками в Аптека Ригла.
Для достижения указанной цели необходимо решить следующие задачи:
Собрать сведения и проанализировать информацию о деятельности Аптека Ригла, для которого будет разрабатываться программное обеспечение, позволяющее автоматизировать бизнес-процессы, направленные на работу с поставщиками в отделе закупок предприятия;
Выбрать объект исследования и сформулировать требования к разрабатываемой информационной системе на основе полученных данных;
Определить информационные потоки исследуемого объекта и построить их модели;
Выбрать предмет исследования дипломного проекта на основе полученных данных об информационных потоках;

Содержание

Введение 6
i. Исследование предметной области 8
1.1. Характеристика предприятия и его деятельности 8
1.2. Характеристика комплекса задач, задачи и обоснование необходимости автоматизации 10
1.2.1. Выбор комплекса задач автоматизации и характеристика существующих бизнес процессов 10
1.2.2. Определение места проектируемой задачи в комплексе задач и ее описание 13
1.2.3. Обоснование необходимости использования вычислительной техники для решения задачи 19
1.2.4.Документооборот 19
1.3. Программная и техническая архитектура ис предприятия 26
1.3.1. Основные функции 26
1.3.2. Анализ существующих разработок и выбор стратегии автоматизации делопроизводства взаимоотношении поставщиков лекарственных препаратов с аптекой 27
Выводы 28
2 Специальный раздел 30
2.1 Разработка проекта базы данных аптеки «Ригла» 30
2.1.1 Инфологическая модель 30
2.1.2 Реализация базы данных 36
2.1.3 Даталогическая модель 39
2.1.3 Обоснование выбора среды базы данных 42
2.1.4 Схема данных 49
Выводы 50
3. Автоматизированная информационная система на основе базы данных «Аптека «Ригла» 51
3.1. Триггеры 51
3.2. Хранимые процедуры 56
3.3 Организация интерфейса с пользователем 61
Выводы 68
4. Обоснование экономической эффективности разработки базы данных для автоматизации работы аптеки «Ригла» 69
4.1 Выбор и обоснование методики расчёта экономической эффективности 69
4.2 Расчёт показателей экономической эффективности 73
Выводы 77
5. Безопасность жизнедеятельности 81
5.2. Требования к помещениям для эксплуатации мониторов и пэвм 86
5.3. Требования к освещению помещений и рабочих мест с мониторами и ПЭВМ 88
5.4. Требования к организации и оборудованию рабочих мест с мониторами и ПЭВМ 89
5.5. Требования к клавиатуре 90
5.6. Требования к организации медицинского обслуживания пользователей ВДТ и ПЭВМ 91
Выводы 91
Заключение 92
Список литературы 94

Прикрепленные файлы: 1 файл

Ригла.docx

— 2.28 Мб (Скачать документ)

  • where NПрепарата=@NPr and Шифр_фирмы=@Ch_firmi
  • end
  •  

  • 2. изменение_количества_в_прайсе_при_добавлении_товара_в
  • _заказ
  •  

  • При добавлении заказа в таблицу проверяем количество товара в наличие в таблице «Прайс цен». Если вводимый заказ меньше того, что имеется , то в заказ пишем заказываемое количество, а в «Прайсе цен» количество уменьшаем на величину, равную заказу.  
  •  

    USE [Apteka_Aibolit]

    GO

    /****** Object:  Trigger [dbo].[изменение_количества_в_прайсе_при_добавлении_товара_в_заказ]    Script Date: 06/16/2009 02:28:50 ******/

    SET ANSI_NULLS ON

    GO

    SET QUOTED_IDENTIFIER ON

    GO

    ALTER trigger [dbo].[изменение_количества_в_прайсе_при_добавлении_товара_в_заказ]

    on [dbo].[Содержимое_заказа]

    for insert

    as

    declare @Kol int, @Kol_Nal int, @NPr int, @Ch_firmi int,@NZakaza int

    select @Kol=Кол_заказа from inserted

    select @NPr=NПрепарата from inserted

    select @NZakaza=NЗаказа from inserted

    select @Ch_firmi=Шифр_фирмы from Заказ_по_фирме

    where NЗаказа=@NZakaza

    select @Kol_Nal=Количество_штук from Прайс_цен

    where NПрепарата=@NPr and Шифр_фирмы=@Ch_firmi

    if @Kol_Nal>@Kol

    begin

    update Прайс_цен set Количество_штук=@Kol_Nal-@Kol

    where NПрепарата=@NPr and Шифр_фирмы=@Ch_firmi

    end

     

    3. изменение_количества_в_прайсе_при_удалении_товара_из_заказа

     

    При удалении из заказа одного из препаратов  пересчитываем  количество в наличие в «Прайсе  цен».

     

    USE [Apteka_Aibolit]

    GO

    /****** Object:  Trigger [dbo].[изменение_количества_в_прайсе_при_удалении_товара_из_заказа]    Script Date: 06/16/2009 02:30:52 ******/

    SET ANSI_NULLS ON

    GO

    SET QUOTED_IDENTIFIER ON

    GO

    ALTER trigger [dbo].[изменение_количества_в_прайсе_при_удалении_товара_из_заказа]

    on [dbo].[Содержимое_заказа]

    for delete

    as

    declare @Kol int, @Kol_Nal int, @NPr int, @Ch_firmi int,@NZakaza int

    select @Kol=Кол_заказа from deleted

    select @NPr=NПрепарата from deleted

    select @NZakaza=NЗаказа from deleted

    select @Ch_firmi=Шифр_фирмы from Заказ_по_фирме

    where NЗаказа=@NZakaza

    select @Kol_Nal=Количество_штук from Прайс_цен

    where NПрепарата=@NPr and Шифр_фирмы=@Ch_firmi

    begin

    update Прайс_цен set Количество_штук=@Kol_Nal+@Kol

    where NПрепарата=@NPr and Шифр_фирмы=@Ch_firmi

    end

     

      1. подсчет_итого_к_оплате_за_товар

     

    Подсчет «к оплате» за один товар. То есть количество заказанного  препарата умножаем на его цену из «Прайса цен».

     

    USE [Apteka_Aibolit]

    GO

    /****** Object:  Trigger [dbo].[подсчет_к_оплате_за_один_товар]    Script Date: 06/16/2009 02:32:34 ******/

    SET ANSI_NULLS ON

    GO

    SET QUOTED_IDENTIFIER ON

    GO

    ALTER trigger [dbo].[подсчет_к_оплате_за_один_товар]

    on [dbo].[Содержимое_заказа]

    for insert

    as

    declare @Stoim int,@Kol int, @NPr int, @Ch_firmi int, @NZakaza int, @K_oplate money

    select @Kol=Кол_заказа from inserted

    select @NPr=NПрепарата from inserted

    select @NZakaza=NЗаказа from inserted

    select @Ch_firmi=Шифр_фирмы from Заказ_по_фирме

       where NЗаказа=@NZakaza

    select @Stoim = цена from Прайс_цен

    where NПрепарата=@NPr and Шифр_фирмы=@Ch_firmi

    if @Kol!=0

    begin

    update Содержимое_заказа set К_оплате_за_товар=@Kol*@Stoim

    where NПрепарата=@NPr

    end

      1.   подсчет_к_оплате_за_один_товар

     

    Подсчет «Итого к оплате за заказ». Суммируем все «К оплате»  по одному номеру заказа.

     

    USE [Apteka_Aibolit]

    GO

    /****** Object:  Trigger [dbo].[подсчет_итого_к_оплате_за_товар]    Script Date: 06/16/2009 02:35:30 ******/

    SET ANSI_NULLS ON

    GO

    SET QUOTED_IDENTIFIER ON

    GO

    ALTER trigger [dbo].[подсчет_итого_к_оплате_за_товар]

    on [dbo].[Содержимое_заказа]

    for insert

    as

    declare @NPr int, @Ch_firmi int, @NZakaza int, @K_oplate money, @Itogo_K_oplate money

    select @NZakaza=NЗаказа from inserted

    select @Ch_firmi=Шифр_фирмы from Заказ_по_фирме

       where NЗаказа=@NZakaza

    select @K_oplate=К_оплате_за_товар from Содержимое_заказа

    where NЗаказа=@NZakaza

    update Заказ_по_фирме set Итого_к_оплате_за_заказ=Итого_к_оплате_за_заказ+@K_oplate

    where  NЗаказа=@NZakaza

     

      1. изменение_итого_к_оплате_в_заказ_по_фирме_при_удалении_товара_из_заказа

     

    При удалении товара из заказа пересчет «Итого к оплате за заказ».

     

    USE [Apteka_Aibolit]

    GO

    /****** Object:  Trigger [dbo].[изменение_итого_к_оплате_в_заказ_по_фирме_при_удалении_товара_из_заказа]    Script Date: 06/16/2009 02:37:02 ******/

    SET ANSI_NULLS ON

    GO

    SET QUOTED_IDENTIFIER ON

    GO

    ALTER trigger [dbo].[изменение_итого_к_оплате_в_заказ_по_фирме_при_удалении_товара_из_заказа]

    on [dbo].[Содержимое_заказа]

    for delete

    as

    declare @Kol int, @NPr int, @Ch_firmi int,@NZakaza int, @itogo_k_oplate_za_zakaz money, @k_oplate_za_tovar money

    select @NZakaza=NЗаказа from deleted

    select @k_oplate_za_tovar=К_оплате_за_товар  from deleted

    select @Ch_firmi=Шифр_фирмы from Заказ_по_фирме

    where NЗаказа=@NZakaza

    select @itogo_k_oplate_za_zakaz=Итого_к_оплате_за_заказ from Заказ_по_фирме

    where NЗаказа=@NZakaza

     

    update Заказ_по_фирме set Итого_к_оплате_за_заказ=@itogo_k_oplate_za_zakaz-@k_oplate_za_tovar

    where NЗаказа=@NZakaza and Шифр_фирмы=@Ch_firmi

     

     

     

    3.2. ХРАНИМЫЕ ПРОЦЕДУРЫ

     

    1. sel.

    Предназначена для отображения для определенного препарата фирм, ее поставляющих, цен на этих фирмах, количество в наличии.

     

    USE [Apteka_Aibolit]

    GO

    /****** Object:  StoredProcedure [dbo].[sel]    Script Date: 06/16/2009 02:44:16 ******/

    SET ANSI_NULLS ON

    GO

    SET QUOTED_IDENTIFIER ON

    GO

    ALTER proc [dbo].[sel]

    @se nchar(150)

    AS

    SELECT     Препараты.*, Прайс_цен.цена, Прайс_цен.Количество_штук, Фирмы.Название_фирмы, Фирмы.Адрес, Фирмы.Телефон, Фирмы.Сайт

    FROM         Прайс_цен INNER JOIN

                          Препараты ON Прайс_цен.NПрепарата = Препараты.NПрепарата INNER JOIN

                          Фирмы ON Прайс_цен.Шифр_фирмы = Фирмы.Шифр_фирмы

    WHERE     (Препараты.Название_препарата = @se)

     

    1. БАД.

    Предназначена для отбора из препаратов только БАД.

     

    USE [Apteka_Aibolit]

    GO

    /****** Object:  StoredProcedure [dbo].[БАД]    Script Date: 06/16/2009 02:45:33 ******/

    SET ANSI_NULLS ON

    GO

    SET QUOTED_IDENTIFIER ON

    GO

    ALTER proc [dbo].[БАД]

    as

    SELECT     NПрепарата, Регистрационный_номер, Название_препарата, Международное_непатентовонне_название, Химическое_название, Срок_хранения,

                          Изображение, Тип_препарата, Примечание, Форма_выпуска, Состав_и_лекарственная_форма, Фармакотерапевтическая_группа, Фармакодинамика,

                          Фармакокинетика, Производитель

    FROM         Препараты

    WHERE     (Препараты.Тип_препарата = 'Бад')

     

    1. Витамин

     

    Предназначена для отбора из препаратов только Витаминов.

     

    USE [Apteka_Aibolit]

    GO

    /****** Object:  StoredProcedure [dbo].[Витамин]    Script Date: 06/16/2009 02:45:33 ******/

    SET ANSI_NULLS ON

    GO

    SET QUOTED_IDENTIFIER ON

    GO

    ALTER proc [dbo].[БАД]

    as

    SELECT     NПрепарата, Регистрационный_номер, Название_препарата, Международное_непатентовонне_название, Химическое_название, Срок_хранения,

                          Изображение, Тип_препарата, Примечание, Форма_выпуска, Состав_и_лекарственная_форма, Фармакотерапевтическая_группа, Фармакодинамика,

                          Фармакокинетика, Производитель

    FROM         Препараты

    WHERE     (Препараты.Тип_препарата = 'Витамин)

     

    1. Косметика

     

    Предназначена для отбора из препаратов только косметики.

     

    USE [Apteka_Aibolit]

    GO

    /****** Object:  StoredProcedure [dbo].[Косметика]    Script Date: 06/16/2009 02:45:33 ******/

    SET ANSI_NULLS ON

    GO

    SET QUOTED_IDENTIFIER ON

    GO

    ALTER proc [dbo].[БАД]

    as

    SELECT     NПрепарата, Регистрационный_номер, Название_препарата, Международное_непатентовонне_название, Химическое_название, Срок_хранения,

                          Изображение, Тип_препарата, Примечание, Форма_выпуска, Состав_и_лекарственная_форма, Фармакотерапевтическая_группа, Фармакодинамика,

                          Фармакокинетика, Производитель

    FROM         Препараты

    WHERE     (Препараты.Тип_препарата = 'Косметика)

     

    1. Лекарственные препараты

     

    Предназначена для отбора из препаратов только БАД.

     

    USE [Apteka_Aibolit]

    GO

    /****** Object:  StoredProcedure [dbo].[БАД]    Script Date: 06/16/2009 02:45:33 ******/

    SET ANSI_NULLS ON

    GO

    SET QUOTED_IDENTIFIER ON

    GO

    ALTER proc [dbo].[Лекарственные препараты]

    as

    SELECT     NПрепарата, Регистрационный_номер, Название_препарата, Международное_непатентовонне_название, Химическое_название, Срок_хранения,

                          Изображение, Тип_препарата, Примечание, Форма_выпуска, Состав_и_лекарственная_форма, Фармакотерапевтическая_группа, Фармакодинамика,

                          Фармакокинетика, Производитель

    FROM         Препараты

    WHERE     (Препараты.Тип_препарата = 'Лекаство')

     

     

    1.  Поиск_препарата

     

    Предназначена для поиска препарата по его названию.

     

    USE [Apteka_Aibolit]

    GO

    /****** Object:  StoredProcedure [dbo].[Поиск_препарата]    Script Date: 06/16/2009 02:50:48 ******/

    SET ANSI_NULLS ON

    GO

    SET QUOTED_IDENTIFIER ON

    GO

    ALTER proc [dbo].[Поиск_препарата]

    @nazv nchar(150)

    as

    SELECT     NПрепарата, Регистрационный_номер, Название_препарата, Международное_непатентовонне_название, Химическое_название, Срок_хранения,

                          Изображение, Тип_препарата, Примечание, Форма_выпуска, Состав_и_лекарственная_форма, Фармакотерапевтическая_группа, Фармакодинамика,

                          Фармакокинетика, Производитель

    FROM         Препараты

    WHERE     (Препараты.Название_препарата = @nazv)

    1. Поиск_фирмы

     

    Предназначена для поиска фирмы по ее названию.

     

    USE [Apteka_Aibolit]

    GO

    /****** Object:  StoredProcedure [dbo].[Поиск_фирмы]    Script Date: 06/16/2009 02:54:56 ******/

    SET ANSI_NULLS ON

    GO

    SET QUOTED_IDENTIFIER ON

    GO

     

    ALTER proc [dbo].[Поиск_фирмы]

    @nazv nchar(30)

    as

    SELECT     Фирмы.*

    FROM         Фирмы

    WHERE     (Фирмы.Название_фирмы = @nazv)

     

    1. показания_к_применению_по_заболеванию

     

    Предназначена для выбора для определенного препарата показания к применению по определенному заболеванию.

     

    USE [Apteka_Aibolit]

    GO

    /****** Object:  StoredProcedure [dbo].[показания_к_применению_по_заболеванию]    Script Date: 06/16/2009 02:56:10 ******/

    SET ANSI_NULLS ON

    GO

    SET QUOTED_IDENTIFIER ON

    GO

    ALTER proc [dbo].[показания_к_применению_по_заболеванию]

    @zabolevanie nchar(50)

    AS

    SELECT     Заболевания.При_зболеваниях, Заболевания.Тип_препарата, Показания_к_применению.*, Препараты.Название_препарата

    FROM         Заболевания INNER JOIN

                          Показания_к_применению ON Заболевания.Шифр_заболевания = Показания_к_применению.[При заболеваниях] INNER JOIN

                          Препараты ON Показания_к_применению.NПрепарата = Препараты.NПрепарата

    WHERE     (Заболевания.При_зболеваниях = @zabolevanie)

     

      1. ОРГАНИЗАЦИЯ ИНТЕРФЕЙСА С ПОЛЬЗОВАТЕЛЕМ

     

    После нажатия на кнопку «Препараты»  открывается окно, представленное на рисунке 5. В этом окне можно просматривать  каталог товаров и осуществлять по нему поиск.

     

    Рис.5. Окно «Препараты».

    При нажатии на ссылку «Показания к применению» открывается окно, которое представлено на рис. 6. Здесь  при вводе категории заболевания  можно получить по нему показания  к применению:

     

    Рис.6. Показания к применению

     

    При нажатии на ссылку «Фармакологические свойства» появляется окно, представленное на рис.7.:

    Рис.7. Фармакологические  свойства

    При нажатии на ссылку «Состав  и лекарственная форма» появляется окно, представленное на рис.8.:

     

    Рис.8. Состав и лекарственная  форма

     

     

    При нажатии на одну из ссылок «Витамины», «Лекарственные препараты», «БАД», «Косметика» появляются такие  окна, представленные на рис.9.:

    Рис.9. Тип препарата

     

     

    При нажатии на кнопку поиск  по названию, появляется окно, представленное на рис.10:

    Рис.10. Поиск по названию

    При нажатии на кнопку «Фирмы», появляется окно, представленное на рис. 11:

    Рис 11. Фирмы

     

    При нажатии на кнопку поиск  по названию, появляется окно, представленное на рис.12:

    Рис.12. Поиск по названию

     

    При нажатии из главного окна на кнопку «Прайс цен», появляется окно, представленное на рис.13.:

    Рис.13 «Прайс цен»

     

    При нажатии на кнопку «Заказ», появляется окно, представленное на рис.14.:

    Рис.14 Заказ

     

     

    При нажатии на кнопку «Содержимое  заказа», появляется окно, представленное на рис.15.:

    Рис. 15 «Содержимое заказа».

     

    Выводы

    В данной главе был рассмотрен порядок разработки базы данных средствами MySQL,  а также разработан внешний интерфейс программного продукта 

    4. Обоснование экономической эффективности разработки базы данных для автоматизации работы аптеки «Ригла»

    4.1 Выбор и обоснование методики расчёта экономической эффективности

     

    Возможны следующие варианты расчета экономической эффективности:

      • сравнение вариантов предлагаемой и существующей АС по комплексу задач;
      • сравнение вариантов организации автоматизированной системы;
      • сравнение вариантов по трудозатратам базового и автоматизированного варианта [14].

    Информация о работе Разработка автоматизированной информационной системы учета продаж фармацевтических препаратов