Главная страница
Навигация по странице:

  • «Разработка базы данных для клиники «Чудо доктор»

  • Оглавление

  • 2.Назначение и цели создания системы 4 2.1.Назначение системы 4 2.2.Цели системы 4 3.Логическая схема 5 4.Физическая схема 6

  • 5.Скрипт генерации БД 7 6.Описание таблиц БД 11 7.Тестовые данные 14 8.SQL – запросы 19 9.Вывод 23

  • Основания для проведения работ

  • Плановые сроки начала и окончания работы

  • Порядок оформления и предъявлению заказчику результатов работ

  • Назначение и цели создания системы

  • Физическая схема

  • Описание таблиц БД

  • Record (Запись на прием)

  • Hist_cab (История кабинетов)

  • Card (Карта) Таблица содержит информацию о карте пациента. Drug (Лекарства)

  • Recorder (Назначение лекарств)

  • Patient (Пациент) Таблица содержит информацию о пациентах. Personal (Персонал)

  • Разработка базы данных для клиники Чудо доктор. Фгбоу во ниу мэи


    Скачать 1.33 Mb.
    НазваниеФгбоу во ниу мэи
    АнкорРазработка базы данных для клиники Чудо доктор
    Дата13.11.2021
    Размер1.33 Mb.
    Формат файлаdocx
    Имя файлаTP_Klinika.docx
    ТипДокументы
    #270834

    Министерство образования и науки Российской Федерации

    ФГБОУ ВО «НИУ «МЭИ»





    Кафедра «Безопасности и информационных технологий»

    «Разработка базы данных для клиники «Чудо доктор»

    Технический проект

    Выполнил:

    Студент группы ИЭз-161-18

    Трапезников Д.И. _______________

    "___ "___________ 2019 г.

    Проверил:

    Жнякин О. В. _______________

    "___ "___________ 2019 г.

    Москва 2019г.

    Оглавление


    1.Общие сведения 3

    1.1.Наименования системы 3

    1.1.1.Полное наименование системы 3

    1.1.2.Краткое наименование системы 3

    1.2.Основания для проведения работ 3

    1.3.Наименование организации – Заказчика и Разработчика 3

    1.4.Плановые сроки начала и окончания работы 3

    1.5.Источники и порядок финансирования 3

    1.6.Порядок оформления и предъявлению заказчику результатов работ 3

    2.Назначение и цели создания системы 4

    2.1.Назначение системы 4

    2.2.Цели системы 4

    3.Логическая схема 5

    4.Физическая схема 6

    5.Скрипт генерации БД 7

    6.Описание таблиц БД 11

    7.Тестовые данные 14

    8.SQL – запросы 19

    9.Вывод 23

    Список литературы 24


    1. Общие сведения

      1. Наименования системы

        1. Полное наименование системы


    Полное наименование: «Разработка базы данных для клиники «Чудо доктор».
        1. Краткое наименование системы


    Краткое наименование: «ИС ЧД».
      1. Основания для проведения работ


    Курсовая работа выполняется на основании коммерческого предложения.
      1. Наименование организации – Заказчика и Разработчика


    Заказчик

    Заказчик: преподаватель НИУ МЭИ кафедры «Безопасности и информационных технологий» Жнякин Олег Вениаминович

    Адрес фактический: 111250, Россия, Москва, ул. Красноказарменная, д.17

    Телефон: +7(495) 3627198

    Разработчик

    Разработчик: студент группы ИЭз-161-18 Трапезников Дмитрий Игоревич

    Адрес фактический: 111250, Россия, Москва, ул. Красноказарменная, д.17

    Телефон: +7(495) 3627198
      1. Плановые сроки начала и окончания работы


    Плановый срок начала работ по созданию системы и разработки серверной части: 29.10.2019.

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

    Плановый срок по окончанию разработки серверной части (первый этап): 20.12.2019.

    Срок второго этапа работы будет определен позднее.
      1. Источники и порядок финансирования


    Не финансируется.
      1. Порядок оформления и предъявлению заказчику результатов работ


    Работы по созданию «ИС ЧД» сдаются Разработчиком в конечном виде, в котором предусмотрен полный̆ функционал отдельных средств (технических, программных, информационных) в соответствии с календарным планом Проекта. По окончании всех этапов работ Разработчик сдает Заказчику соответствующие отчетные документы, состав которых определен Договором.

    Прием осуществляется путем демонстрации проекта.
    1. Назначение и цели создания системы

      1. Назначение системы


    «Чудо Доктор» — это многопрофильное лечебное учреждение, предоставляющее широкий спектр высокоспециализированных медицинских услуг и уникальную возможность решить большинство проблем со здоровьем в одном учреждении. В клинике работаю более 200 высококвалифицированных специалистов более чем по 40 специализациям.

    Разрабатываемая система предназначена для автоматизации работы клиники.

    «Чудо доктор» является многопрофильным учреждением, оказывающим ряд медицинских услуг пациентам. Внедрение комплексной системы автоматизации клиники существенно облегчает деятельность медицинского персонала (за счет автоматизации рутинных операций) и повышает качество обслуживания.

    Данная система содержит информацию о врачах, пациентах, кабинетах, расписании персонала, назначении лекарств пациенту и его диагноз.
      1. Цели системы


    • Удобное и быстрое пользование амбулаторными картами путем введения поиска по БД;

    • Сокращение трудозатрат на прием к врачу

    • Детальный сбор данных о врачах, пациентах

    • Сбор статистики по нагрузке каждого врача.


    1. Логическая схема


    База данных клиники состоит из 14 таблиц. На лог. схеме (Рис.1) изображены визуальные связи между сущностями и их атрибуты.



    Рисунок 1 Логическая схема
    1. Физическая схема




    Рисунок 2 Физическая схема
    1. Скрипт генерации БД


    -- Generated by Oracle SQL Developer Data Modeler 19.2.0.182.1216

    -- at: 2019-12-10 23:36:19 MSK

    -- site: Oracle Database 11g

    -- type: Oracle Database 11g
    CREATE TABLE cabinet (

    id_c NUMBER(10) NOT NULL,

    cabinet VARCHAR2(40 CHAR)

    );
    ALTER TABLE cabinet ADD CONSTRAINT cabinet_pk PRIMARY KEY ( id_c );
    CREATE TABLE card (

    id_card NUMBER(20) NOT NULL,

    patient_id_patient NUMBER(10) NOT NULL,

    type_card_id_type NUMBER(20) NOT NULL

    );
    ALTER TABLE card ADD CONSTRAINT card_pk PRIMARY KEY ( id_card );
    CREATE TABLE diagnosis (

    id_d NUMBER(20) NOT NULL,

    diagnosis VARCHAR2(40 CHAR)

    );
    ALTER TABLE diagnosis ADD CONSTRAINT diagnosis_pk PRIMARY KEY ( id_d );
    CREATE TABLE drug (

    id_drug NUMBER(20) NOT NULL,

    drug VARCHAR2(40 CHAR)

    );
    ALTER TABLE drug ADD CONSTRAINT drug_pk PRIMARY KEY ( id_drug );
    CREATE TABLE hist_cab (

    personal_id_p NUMBER(20) NOT NULL,

    cabinet_id_c NUMBER(10) NOT NULL,

    start_date DATE,

    finish_date DATE

    );
    ALTER TABLE hist_cab ADD CONSTRAINT hist_cab_pk PRIMARY KEY ( personal_id_p,

    cabinet_id_c );
    CREATE TABLE hist_post (

    personal_id_p NUMBER(20) NOT NULL,

    post_id_post NUMBER(20) NOT NULL,

    start_date DATE,

    finish_date DATE

    );
    ALTER TABLE hist_post ADD CONSTRAINT hist_post_pk PRIMARY KEY ( personal_id_p,

    post_id_post );
    CREATE TABLE patient (

    id_patient NUMBER(10) NOT NULL,

    first_name VARCHAR2(40 CHAR),

    middle_name VARCHAR2(40 CHAR),

    second_name VARCHAR2(40 CHAR),

    date_birth DATE,

    phone NUMBER(20),

    login VARCHAR2(40 CHAR) NOT NULL,

    password VARCHAR2(40 CHAR) NOT NULL

    );
    ALTER TABLE patient ADD CONSTRAINT patient_pk PRIMARY KEY ( id_patient );
    CREATE TABLE pay (

    id_pay NUMBER(20) NOT NULL,

    "date" DATE,

    price NUMBER(20),

    type_pay_id_type NUMBER(20) NOT NULL

    );
    ALTER TABLE pay ADD CONSTRAINT pay_pk PRIMARY KEY ( id_pay );
    CREATE TABLE personal (

    id_p NUMBER(20) NOT NULL,

    first_name VARCHAR2(40 CHAR),

    middle_name VARCHAR2(40 CHAR),

    second_name VARCHAR2(40 CHAR),

    phone NUMBER(20),

    login VARCHAR2(40 CHAR) NOT NULL,

    password VARCHAR2(40 CHAR) NOT NULL

    );
    ALTER TABLE personal ADD CONSTRAINT personal_pk PRIMARY KEY ( id_p );
    CREATE TABLE post (

    id_post NUMBER(20) NOT NULL,

    post VARCHAR2(40)

    );
    ALTER TABLE post ADD CONSTRAINT post_pk PRIMARY KEY ( id_post );
    CREATE TABLE purpose (

    drug_id_drug NUMBER(20) NOT NULL,

    record_id_rec NUMBER(20) NOT NULL

    );
    ALTER TABLE purpose ADD CONSTRAINT purpose_pk PRIMARY KEY ( drug_id_drug,

    record_id_rec );
    CREATE TABLE record (

    id_rec NUMBER(20) NOT NULL,

    date_rec DATE,

    time_rec VARCHAR2(10 CHAR),

    card_id_card NUMBER(20) NOT NULL,

    pay_id_pay NUMBER(20) NOT NULL,

    diagnosis_id_d NUMBER(20) NOT NULL,

    personal_id_p NUMBER(20) NOT NULL

    );
    CREATE UNIQUE INDEX record__idx ON

    record (

    pay_id_pay

    ASC );
    ALTER TABLE record ADD CONSTRAINT record_pk PRIMARY KEY ( id_rec );
    CREATE TABLE type_card (

    id_type NUMBER(20) NOT NULL,

    type VARCHAR2(20 CHAR)

    );
    ALTER TABLE type_card ADD CONSTRAINT type_card_pk PRIMARY KEY ( id_type );
    CREATE TABLE type_pay (

    id_type NUMBER(20) NOT NULL,

    type_pay VARCHAR2(40 CHAR)

    );
    ALTER TABLE type_pay ADD CONSTRAINT type_pay_pk PRIMARY KEY ( id_type );
    ALTER TABLE card

    ADD CONSTRAINT card_patient_fk FOREIGN KEY ( patient_id_patient )

    REFERENCES patient ( id_patient );
    ALTER TABLE card

    ADD CONSTRAINT card_type_card_fk FOREIGN KEY ( type_card_id_type )

    REFERENCES type_card ( id_type );
    ALTER TABLE hist_cab

    ADD CONSTRAINT hist_cab_cabinet_fk FOREIGN KEY ( cabinet_id_c )

    REFERENCES cabinet ( id_c );
    ALTER TABLE hist_cab

    ADD CONSTRAINT hist_cab_personal_fk FOREIGN KEY ( personal_id_p )

    REFERENCES personal ( id_p );
    ALTER TABLE hist_post

    ADD CONSTRAINT hist_post_personal_fk FOREIGN KEY ( personal_id_p )

    REFERENCES personal ( id_p );
    ALTER TABLE hist_post

    ADD CONSTRAINT hist_post_post_fk FOREIGN KEY ( post_id_post )

    REFERENCES post ( id_post );
    ALTER TABLE pay

    ADD CONSTRAINT pay_type_pay_fk FOREIGN KEY ( type_pay_id_type )

    REFERENCES type_pay ( id_type );
    ALTER TABLE purpose

    ADD CONSTRAINT purpose_drug_fk FOREIGN KEY ( drug_id_drug )

    REFERENCES drug ( id_drug );
    ALTER TABLE purpose

    ADD CONSTRAINT purpose_record_fk FOREIGN KEY ( record_id_rec )

    REFERENCES record ( id_rec );
    ALTER TABLE record

    ADD CONSTRAINT record_card_fk FOREIGN KEY ( card_id_card )

    REFERENCES card ( id_card );
    ALTER TABLE record

    ADD CONSTRAINT record_diagnosis_fk FOREIGN KEY ( diagnosis_id_d )

    REFERENCES diagnosis ( id_d );
    ALTER TABLE record

    ADD CONSTRAINT record_pay_fk FOREIGN KEY ( pay_id_pay )

    REFERENCES pay ( id_pay );
    ALTER TABLE record

    ADD CONSTRAINT record_personal_fk FOREIGN KEY ( personal_id_p )

    REFERENCES personal ( id_p );
    -- Oracle SQL Developer Data Modeler Summary Report:

    --

    -- CREATE TABLE 14

    -- CREATE INDEX 1

    -- ALTER TABLE 27

    -- CREATE VIEW 0

    -- ALTER VIEW 0

    -- CREATE PACKAGE 0

    -- CREATE PACKAGE BODY 0

    -- CREATE PROCEDURE 0

    -- CREATE FUNCTION 0

    -- CREATE TRIGGER 0

    -- ALTER TRIGGER 0

    -- CREATE COLLECTION TYPE 0

    -- CREATE STRUCTURED TYPE 0

    -- CREATE STRUCTURED TYPE BODY 0

    -- CREATE CLUSTER 0

    -- CREATE CONTEXT 0

    -- CREATE DATABASE 0

    -- CREATE DIMENSION 0

    -- CREATE DIRECTORY 0

    -- CREATE DISK GROUP 0

    -- CREATE ROLE 0

    -- CREATE ROLLBACK SEGMENT 0

    -- CREATE SEQUENCE 0

    -- CREATE MATERIALIZED VIEW 0

    -- CREATE MATERIALIZED VIEW LOG 0

    -- CREATE SYNONYM 0

    -- CREATE TABLESPACE 0

    -- CREATE USER 0

    -- DROP TABLESPACE 0

    -- DROP DATABASE 0

    -- REDACTION POLICY 0

    -- ORDS DROP SCHEMA 0

    -- ORDS ENABLE SCHEMA 0

    -- ORDS ENABLE OBJECT 0

    -- ERRORS 0

    -- WARNINGS 0
    1. Описание таблиц БД


    Название таблица

    Описание

    Diagnosis (Диагноз)

    Таблица является каталогом, который содержит информацию о диагнозах.

    Post (Должность)

    Таблица является каталогом, который содержит информацию о должностях.

    Record (Запись на прием)

    Таблица содержит информацию о записях на прием.

    Hist_post (Назначение на должность)

    Таблица содержит информацию о дате приема на работу, назначение на должность и т.д.

    Hist_cab (История кабинетов)

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

    Cabinet (Кабинет)

    Таблица является каталогом, который содержит информацию о кабинетах в клинике.

    Card (Карта)

    Таблица содержит информацию о карте пациента.

    Drug (Лекарства)

    Таблица является каталогом, который содержит информацию о лекарствах.

    Recorder (Назначение лекарств)

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

    Patient (Пациент)

    Таблица содержит информацию о пациентах.

    Personal (Персонал)

    Таблица содержит информацию о врачах клиники.

    Type_card (Тип карты)

    Таблица является каталогом, который содержит информацию о типах карт.

    Type_pay (Тип оплаты)

    Таблица является каталогом, который содержит информацию о типах оплат.

    Pay (Чек)

    Таблица содержит информацию об оплате каждого приема



    Рисунок 3 Диагноз



    Рисунок 4 Должность



    Рисунок 5 Запись на прием



    Рисунок 6 Назначение на должность



    Рисунок 7 История кабинета



    Рисунок 8 Кабинет



    Рисунок 9 Карта пациента



    Рисунок 10 Лекарства



    Рисунок 11 Назначенные лекарства



    Рисунок 12 Пациент



    Рисунок 13 Персонал



    Рисунок 14 Тип карты



    Рисунок 15 Тип оплаты



    Рисунок 16 Чек
    1. Тестовые данные




    Рисунок 17 Кабинет



    Рисунок 18 Диагноз



    Рисунок 19 Карта пациента



    Рисунок 20 Тип оплаты



    Рисунок 21 Лекарства



    Рисунок 22 История кабинетов



    Рисунок 23 Назначение на должность



    Рисунок 24 Пациент



    Рисунок 25 Чек



    Рисунок 26 Персонал



    Рисунок 27 Должность



    Рисунок 28 Назначенные лекарства



    Рисунок 29 Запись на прием
    1. SQL – запросы


    Отчет №1

    Вывести данные клиентов, прием которых покрывала страховка.

    select patient.first_name, patient.middle_name, patient.second_name, record.id_rec, pay.price

    from patient, record, type_pay, pay, card

    where patient.id_patient=card.patient_id_patient

    and card.id_card=record.card_id_card

    and record.pay_id_pay=pay.id_pay

    and pay.type_pay_id_type=type_pay.id_type

    and type_pay.type_pay = 'Страховка'



    Отчет №2

    Вывести данные клиентов, которые обратились из-за ушиба и страховка покрывает прием.

    select patient.first_name, patient.middle_name, patient.second_name, record.id_rec, pay.price

    from patient, record, type_pay, pay, card, diagnosis

    where patient.id_patient=card.patient_id_patient

    and card.id_card=record.card_id_card

    and record.pay_id_pay=pay.id_pay

    and pay.type_pay_id_type=type_pay.id_type

    and record.diagnosis_id_d=diagnosis.id_d

    and type_pay.type_pay = 'Страховка'

    and diagnosis.diagnosis = 'Ушиб'



    Отчет №3

    Вывести количество приемов у врача Шевцовой

    select COUNT(record.id_rec)

    from record, personal

    where record.personal_id_p = personal.id_p

    and personal.second_name = 'Шевцова'



    Отчет №4

    Вывести общую сумму за декабрь, которую оплатил пациент Варвара Беркут.

    select sum(pay.price)

    from pay, card, patient, record

    where patient.id_patient=card.patient_id_patient

    and card.id_card=record.card_id_card

    and record.pay_id_pay=pay.id_pay

    and patient.second_name = 'Беркут'

    and record.date_rec between '01/10/2019' and '30/12/2019'



    Отчет №5

    Вывести препараты, которые назначили в ноябре для пациента Петрова.

    select diagnosis.diagnosis, drug.drug

    from diagnosis, drug, patient, purpose, card, record

    where diagnosis.id_d= record.diagnosis_id_d

    and purpose.record_id_rec=record.id_rec

    and purpose.drug_id_drug=drug.id_drug

    and patient.id_patient=card.patient_id_patient

    and card.id_card=record.card_id_card

    and patient.second_name = 'Петров'

    and record.date_rec between '01/11/2019' and '30/11/2019'



    Отчет №6

    Вывести кабинет и ФИО ЛОРа.

    select personal.first_name, personal.middle_name, personal.second_name, cabinet.cabinet, post.post

    from post, cabinet, hist_cab, personal

    where hist_cab.cabinet_id_c=cabinet.id_c

    and hist_cab.personal_id_p=personal.id_p

    and post.id_post=personal.id_p

    and post.post = 'ЛОР'



    Отчет №7

    Вывести расписание врача на день.

    select personal.first_name, personal.middle_name, personal.second_name, cabinet.cabinet, post.post, record.date_rec, record.time_rec

    from post, cabinet, hist_cab, personal, record

    where hist_cab.cabinet_id_c=cabinet.id_c

    and hist_cab.personal_id_p=personal.id_p

    and post.id_post=personal.id_p

    and record.personal_id_p= personal.id_p

    and record.date_rec = '03/12/2019'


    1. Вывод


    Для качественной работы всей информационной системы была сформирована база данных. Перед проектированием данной базы был проведён анализ предметной области, на основе которого и велась вся последующая работа.

    После принятия основных направлений работы и окончания анализа предметной области, была сформирована логическая модель базы данных, отражающая все сущности и связи между ними. В дальнейшем на её основе была организована физическая модель и сформирован скрипт, который сгенерировал все запланированные таблицы и связи между ними.

    Оценивая преимущества и недостатки Oracle и его функциональные возможности, можно утверждать, что данная система обладает всеми необходимыми инструментами для создания, редактирования, хранения и ежедневного использования баз данных. Интерфейс программы прост и удобен.

    Поставленная задача по проектировании и разработке информационной системы была полностью проделана. База данных для ОИП была реализована, запросы, осуществляющие выборку данных, написаны и работают согласно заявленному функционалу.

    Список литературы


    1. Системы управления базами данных и знаний Автор: А. Наумов Издательство: Финансы и статистика Год: 1991 ISBN: 5-279-00509-6 DJVU: 11 Мб

    2. Введение в реляционные базы данных Автор: В. В. Кириллов, Г. Ю. Громов Издательство: БХВ-Петербург Год: 2009

    3. Базы данных Автор: С. В. Глушаков, Д. В. Ломотько Издательство: АСТ Год: 2002

    4. SQL Автор: Мартин Грабер Издательство: Лори Год: 2003

    5. SQL. Руководство по изучению языка Автор: Крис Фиайли Издательство: ДМК Пресс, Питер Год: 2004



    написать администратору сайта