SQL-запросы для КПС «ВИСТА-МЕД»

MySQL, MSSQL, PostgreSQL и пр.

Модератор: DNK

SQL-запросы для КПС «ВИСТА-МЕД»

Сообщение max » 17 апр 2015, 10:46

Здравствуйте!

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

Проконтролировать данную ошибку и указать на нее специалистам допустивших ее можно при помощи вот этого небольшого скрипта, который проверяет за указанный период наличие больше одного обращения по одинаковому заболеванию одной специальности у пациентов.
Код: выделить все
USE s11vm;

SET@a='20150401'; /*указываем период отчета*/
SET@b='20150431';
SET@p = '2';         /*Код полки 2*/ /*Если нужно проверить только полку 1, ставим параметр 83*/
SET@p2 = '83';        /*При необходимости проверки на совпадения полки 2 с полкой 1, установить параметр 83*/
 
SELECT c.id AS Карта,
       CONCAT(c.lastName,' ',c.firstName,' ',c.patrName) AS Пациент,   
       r.name AS Специальность,
       d1.MKB,
       COUNT(c.id) AS обращений
FROM client c
    INNER JOIN event e
ON c.id = e.client_id
    INNER JOIN diagnostic d
ON e.id = d.event_id
    INNER JOIN diagnosis d1
ON d.diagnosis_id = d1.id
    INNER JOIN person p
ON e.setPerson_id = p.id
    INNER JOIN rbspeciality r
ON p.speciality_id = r.id
    WHERE  e.eventType_id IN (@p,@p2) 
AND e.setDate >= @a
AND e.execDate<=@b
AND e.deleted = 0
AND d.deleted = 0
AND d1.deleted = 0
AND d1.MKB NOT BETWEEN 'Z00.0' AND 'Z10.9'
GROUP BY d1.MKB,Пациент,Специальность
HAVING COUNT(*)>1


У каждого учреждения может быть свой идентификатор события "Лечебно-диагностический". У нас в учреждении их два, т.к. две поликлиники.
Указываются они в начале скрипта, переменная @p и @p2. Если у вас одна поликлиника, то присвойте этим переменным одинаковое значение, либо просто оставьте одну переменную и настройте скрипт на использование одной переменной.

Чтобы узнать идентификатор своего события, выполните след. скрипт.

Код: выделить все
SELECT  e.id,e.name
  FROM eventtype e
  WHERE e.name LIKE '%Лечебно-диагностический%'


После выполнения этого запроса, Вы увидите нужный Вам идентификатор события, который просто нужно подставить в значение переменной.
Вложения
Результат проверки
Результат второго скрипта
Михайличенко Максим
МБУЗ "Городская многопрофильная больница" г. Армавир
МБУЗ "Детская городская больница" г. Армавир
сот.: 8 (918) 23-93-473
Аватар пользователя
max
 
Сообщений: 70
Зарегистрирован: 14 авг 2014, 10:58
Регион: Краснодарский край
Муниципальное образование: Армавир
Наименование организации: МБУЗ "Городская многопрофильная больница" г.Армавир
Рабочий телефон: 89182393473

Вернуться в СУБД



Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron