|
0 / 0 / 0
Регистрация: 21.06.2024
Сообщений: 70
|
|
База данных и даты с событиями14.02.2025, 14:19. Показов 4786. Ответов 36
Метки нет (Все метки)
Доброго времени суток. Разрабатываю приложение для больницы в рамках личного использования в котором содержатся отделения, пациенты, данные и даты поступления и перевода. Как организовать чтобы можно было видеть через DBGrid при фильтрации между датами путь пациента? Например: пациент A поступил в терапевтическое отделение 01.02.2025. Был переведен в реанимацию 03.02.2025 (то есть с 03.02.2025 в терапевтическом отделении он перевелся, а в реанимации появился), далее 08.02.2025 он перевелся обратно в терапевтическое отделение и уже 12.02.2025 идет выписка (то есть в отделении реанимации 08.02.2025 перевод, а в терапевтическом с 08.02.2025 он снова появляется)? Сейчас реализовано только возможность отображение пациента в отделении между датами поступления и перевода/выписки. Правильно ли я понимаю, что требуется отдельная таблица с датами движения пациентов, отделений и ключ пациента, который связывает 2 таблицы? В 1 таблице ФИО, паспортная часть
0
|
|
| 14.02.2025, 14:19 | |
|
Ответы с готовыми решениями:
36
Список баз данных SQL-сервера Перенос баз данных Настройка псевдонимов баз данных и драйверов |
|
0 / 0 / 0
Регистрация: 21.06.2024
Сообщений: 70
|
|
| 16.02.2025, 11:15 [ТС] | |
|
krapotkin, может я чего-то не понимаю, но мой порядок удобен ведь. Благодаря наличию законченной строки имеется работающая фильтрация по отделениям и нахождение пациента в заданном промежутке. В случае если дробить каждое действие подобное будет невозможно. Плюс каждая строка это дата поступления и законченное действие в виде перевода/выписки/летального исхода, что сразу отображается. Если дата поступления не закрыта, то в программе пациент числится за отделением, которое было введено в последней строке. Прям строгий порядок действий и не требуется ведь - требуется именно отображение поступления в отделение и исход с датой этого события. Ну и на самой истории требуется дата поступления в стационар и выписка для итогового подсчёта койко-дней.
А про поле arrival думал - да, действительно, это будет работать. Только пока так и не придумал как сделать его присвоение. Если в первом случае ещё можно придумать, то на повторную госпитализацию сделать что-то вроде кнопки повторной госпитализации с присвоением +1 к полю arrival? При этом возможность дополнительного фильтра на протоколах для просмотра только текущей госпитализации - добавить данное поле и в таблицу протоколов
0
|
|
|
|
|
| 16.02.2025, 13:05 | |
|
1) тема гласит, что ваш удобный вариант - не удобный
2) см. 1) если чего-то непонятно, всегда есть возможность уточнять до посинения фильтрация по отделениям - в чем проблема? есть запись "поступил" в ней очевидно должно быть какое-то поле - куда поступил. ставим условие - все записи, у которых arrival из предыдущего поста = "куда поступил" ?? чем повторная госпитализация отличается от первичной? только тем, что она повторная можно это вычислить, если смотреть просто историю поступлений но вдруг предыдущий случай с этим не связан тогда есть смысл просто сделать поле "related_to" и туда пихать опять же код события первичного поступления Добавлено через 4 минуты действия по текущей госпитализация - все записи, у которых arrival_id = <указываем id поступления> действия по исходной госпитализации - все записи, у которых arrival_id = related_to_id все действия от исходной до текущей госпитализации - все записи, у которых related_to_id = текущему related_to_id плюс записи у который arrival_id = текущему related_to_id (записи исходной г.)
0
|
|
|
2925 / 1955 / 215
Регистрация: 05.06.2011
Сообщений: 5,801
|
||
| 18.02.2025, 15:21 | ||
|
Движение между датами — DataPos <= Date2 and DateVyb >= Date1.
0
|
||
|
0 / 0 / 0
Регистрация: 21.06.2024
Сообщений: 70
|
|
| 05.05.2025, 16:26 [ТС] | |
|
krapotkin, по истечению времени в конечном итоге требуется на каждое событие своя строка. Для того чтобы в итоге адекватно отобразить все события по пациенту. Вот только возможно ли реализовать все пожелания через одну дату? Условно в таблице Date и в неё записывать и дату поступления, и дату перевода с выпиской? Плюс требуется при переводе пациента чтобы автоматически делалась запись в переводе из текущего отделения и поступлении в другом отделении с единой датой и временем
0
|
|
|
|
|
| 05.05.2025, 19:41 | |
|
чтобы адекватно отобразить все события по пациенту, нужно как раз и вести общий список событий по пациенту
дата-время, событие дата-время, событие и т.д. а для каждого типа событий можно вести отдельные дополнительные таблицы
0
|
|
|
Айлурофил
|
|
| 09.05.2025, 06:51 | |
|
Логично иметь такую структуру таблицы событий.
а) Id пациента б) Дата время события в) Тип события - (поступил, выписался, умер, проведена операция, взяты анализы и т.д.) г) Ссылка на доп.инф. по событию (отд.таблица, в завис.от в) д) Какие-то другие параметры Добавлено через 5 минут При этом, при вводе и коррекции этой таблицы, необходим контроль (зашита от дурака), чтобы не возникало абсурдных ситуаций, типа выписался, но ещё не поступил и т.д. Добавлено через 2 минуты То. что мы с krapotkin вам советуем - поверьте, это оптимальный вариант, другие решения приведут в конечном итоге к коллизиям и порче БД. Добавлено через 13 минут Уточню для ясности - в) Здесь должен находиться Id (целое число) события из отдельной таблицы-справочника событий. г) Здесь должен находиться Id (целое число) записи из таблицы данного типа событий. д) Возможно, Id (целое число) отделения записи из таблицы-справочника отделений, в которое/из которого поступил пациент. Если осуществляется перевод из отделения в отделение, то формируются 2 записи в таблице событий "переведён в другое отделение" и "переведён из другого отделения". С единой датой/временем, естественно. При этом помнить, что при коррекции одной из этих записей, нужно корректировать и другую. Добавлено через 5 минут Другой вариант при переводе - совместить это в одной записи события, но в этом случае будет немного сложнее извлекать данные для построения цепочки по пациенту, хотя это не критично.
0
|
|
|
0 / 0 / 0
Регистрация: 21.06.2024
Сообщений: 70
|
||||||
| 10.05.2025, 17:00 [ТС] | ||||||
|
Massaraksh7, вариант отличный - спору нет. Но возникает вопрос на который пока я не могу получить ответ. Самое основное помимо описания всех событий это фильтрация данных. То есть сейчас идет в одной строке дата поступления и дата выписки/перевода и так далее. На основе этого я использую фильтрацию различную: указываю текущую дату и у меня отображается кто сейчас находится в отделении, подсчёт койко-дней между двумя датами. Будет ли работать адекватно фильтрация при наличии только даты события? На неё так же потребуется завязать подобный код
Заключение: фильтрация идёт по отделению, между двумя датами есть 3 дата - текущая. Возможно ли реализовать подобное при наличии только даты события?
0
|
||||||
|
Айлурофил
|
|||||
| 10.05.2025, 17:27 | |||||
0
|
|||||
|
0 / 0 / 0
Регистрация: 21.06.2024
Сообщений: 70
|
|
| 10.05.2025, 18:02 [ТС] | |
|
Massaraksh7, там не сравнение идёт, а сопоставление. То есть связь 2х таблиц идёт через поле id. Данных для сравнения между двух таблиц нет - они взаимодополняют друг друга. Все данные для сравнения идут из одной таблицы названной Dvizh
0
|
|
|
Айлурофил
|
|
| 10.05.2025, 18:28 | |
|
Я, к сожалению, не работал конкретно с базой Access, но во всех СУБД в таблицах именем Id обычно называют первичный уникальный автоинкрементный ключ, который никак не сопоставляется с Id других таблиц.
0
|
|
|
0 / 0 / 0
Регистрация: 21.06.2024
Сообщений: 70
|
|
| 10.05.2025, 19:17 [ТС] | |
|
Massaraksh7, первичный уникальный ключ просто назван другим именем. Поэтому расхождения нет в этом
А как SQL запрос создать для сравнения между датами из одной строки на примере запроса выше?
0
|
|
|
Айлурофил
|
|
| 10.05.2025, 20:26 | |
|
Я лично с Dbgrid не работаю, и вам не советую. Составляю запросы на выборку минимально необходимых данных в память, там их обрабатываю, фильтрую, если нужно, и отображаю в Stringgrid. Уверен, это можно сделать и одним запросом. Но для этого нужно иметь конкретную структуру БД, и конкретный вид отображаемых данных.
0
|
|
|
130 / 109 / 22
Регистрация: 23.05.2015
Сообщений: 737
|
|
| 10.05.2025, 21:01 | |
|
0
|
|
|
пофигист широкого профиля
4770 / 3207 / 862
Регистрация: 15.07.2013
Сообщений: 18,616
|
|
| 11.05.2025, 01:41 | |
|
0
|
|
|
Айлурофил
|
|
| 11.05.2025, 10:55 | |
|
0
|
|
|
|
|
| 11.05.2025, 21:18 | |
|
Когда вопрос ставится - имею ли я право называть поля как хочу? - да конечно, на здоровье.
Только сами потом и @ с ними. Очень, крайне, неприлично часто мейнстримовые фреймворки или фичи подразумевают, что разработчик не только писатель, а еще читатель, и знает пару-тройку отраслевых стандартов. В этом случае все справочники автоматически (магически) линкуются по ключам, подключаются разные там связи и т.д. А еще следующий разработчик, которому выпала высокая честь разбираться в вашем продукте после вас, не тратит слишком много денег на проработку травм у психолога. Поэтому таблицы называются по имени сущностей в мн.ч., ключевые поля обычно называются id, а ссылки на них - имя сущности в ед.ч. + _id И жить становится полегче. Но это, конечно, принижает креативность и не дает развернуться настоящему таланту с большой, как имена классов в делфи, буквы Т. Добавлено через 1 минуту P.S. ключ не обязательно автоинкрементный Если БД любит реплицироваться, или подгружать данные из внешних источников, то хороший выбор - современные time-based GUIDs
1
|
|
|
4894 / 2827 / 867
Регистрация: 04.10.2012
Сообщений: 10,282
|
|
| 25.07.2025, 15:12 | |
|
0
|
|
| 25.07.2025, 15:12 | |
|
Привязка баз данных Создание многозвенного приложения для обработки баз данных SQL server. нужна пояснительная записка к курсовой работы по delphi на тему разработка баз данных автомобильного салона Премьер - Авто и сама прога если можно ... Вывод дат из базы в виде дерева Использование Access баз данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
|
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него.
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952
Инструкция внутри.
https:/ / youtu. be/ VpfFZSUDGnQ. . .
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|