|
|
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
Понадобилось прикрутить к базе расписание приема пациентов, причем клиник может быть несколько. Набросал примерно такую схему DDL Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. Все крутится вокруг табли (TBL_TIME_SLICE) с интервалами времени (столбцы в минутах от полуночи), каждую запись которой планирую отображать в сетке "девкинского" шедулера Что смущает: 1. если брать 5-минутный интервал, то таких полей потенциально может быть 5 х 12 х 24 = 1440 - не широковата ли таблица? 2. нет ли тут избыточной нормализации в контексте подхватывания индексов и "многоэтажности" запросов? Что и где "в консерватории подправить"? ================= Док. FB 2.5.2 26539, диалект 3, SS(многопольз.), FIB+ 7.4, DXE/IBExpert ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2012, 12:49 |
|
||
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
Я иногда посещаю поликлиники и заметил, что разным докторам даётся разное время приёма пациента. У Вас чё-то такого не заметил. или я что-то не понял про интервалы. Непонятно почему в таблице planner два пациента на одной записи. один doctor может принять сразу двух пациентов с картой и без карты? А двух пациентов с картами никак не получится? Ну и почему room существуют отдельно от clinic. насколько я понимаю, кабинет №25 может присутствовать во всех клиниках, причём в первой он будет лабораторией, во втором хирургическим кабинетом, в третьем вообще санитарной комнатой. А у докторов только ФИО? специальности врачам не требуются? Все универсалы? Если стомалога отправят в офтальмологию, он там сможет принять пациентов? Интересно что он там делать будет? В в кабинете окулиста стоят бормашинки или он будет пытаться указкой тыкать в табличку с буквами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 07:57 |
|
||
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
Mr.Fontaine, вы про детали, а мне нужна концепция. Эта схема - грубый набросок, не более того ... По сабжу мысли есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 11:45 |
|
||
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
Да, по поводу tbl_patients_temp (лишняя) и tbl_room (без FK на Tbl_Clinic) согласен ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 11:48 |
|
||
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
ДокMr.Fontaine, вы про детали, а мне нужна концепция. Эта схема - грубый набросок, не более того ... По сабжу мысли есть? По сабжу таблица интервалов должна, конечно, выглядеть (ID_Planner, ID_Time_slice, Value(?)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 12:56 |
|
||
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
> если брать 5-минутный интервал Откуда вдруг он у вас появился, не поясните? Приходит в голову единственный разумный вариант: нормативное время приема любого специалиста кратно пяти минутам. Ну... как бы сильно вряд ли это имеет место, нет? > Что и где "в консерватории подправить"? Если для вас принципиальны интервалы (хотя, в общем, в целесообразности их использования в таком виде есть сомнения), вы можете развернуть таблицу. Расписание приема - ссылки на нее, прием - ссылки на расписание с учетом даты. Знаете, есть какое-то внутреннее предубеждение против постановки задачи таким образом: на первый взгляд, она может быть корректной, но идеологически выглядит безобразно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 13:37 |
|
||
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
Концепции говоришь нету? Так-то на столбцы время ваще не стоит разбивать. Достаточно хранить просто время начала приёма и длительность приёма. Про длительность вообще нигде ничего не сказано P.S. И что такое сетка "девкинского" шедулера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 14:13 |
|
||
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
Mr.Fontaine, При Вашей структуре прием не может быть "разрывным" - не факт что это нужно отражать, но изначальная схема это позволяет делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 14:42 |
|
||
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинПо сабжу таблица интервалов должна, конечно, выглядеть (ID_Planner, ID_Time_slice, Value(?)) ОК, прикину guest_20040621Откуда вдруг он у вас появился, не поясните? Изначально задумывалось, что интервалы со "своей" строкой в сетке, принадлежащие одному врачу и пациенту, должны были на уровне гуев объединяться (цветом или рамкой). Про "идеологическое безобразие" согласен - самому не нравиться. Mr.FontaineP.S. И что такое сетка "девкинского" шедулера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 18:11 |
|
||
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
> на уровне гуев объединяться (цветом или рамкой) Хозяин - барин. Можно просто: таблица интервалов нужной длительности (за час), таблица часов в сутках, сочетания - 288 интервалов. Бонус - удобно задавать время работы специалистов и клиник. Кривовато, но работоспособно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 21:15 |
|
||
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
guest_20040621Можно просто: таблица интервалов нужной длительности (за час), таблица часов в сутках, сочетания - 288 интервалов. Блин, самое очевидное всегда лежит на самом видном месте, потому и не видно, пока не абстрагируешься :) Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2012, 23:29 |
|
||
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, :-) Я, наверное, недостаточно часто хожу по врачам, чтоб знать, что приём врача пациентом может осуществляться на перерывом на обед. Я такого никогда не встречал. И даже не слышал. Мне почему-то всегда дают талончик, в котором указано только одно время. Если мне требуется дважды прийти, то мне дают две бумажки, поэтому это, скорее всего, два разных приёма. P.S. Хотя не исключено, что я что-то не понимаю в медицинском учёте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2012, 14:06 |
|
||
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
Mr.Fontaine, Бывает прием по такой схеме - врач принимает пациента, отправляет его на, скажем, флюорографию и пока тот ходит, принимает следующего. Когда флюорография готова - пациент возвращается и прием продолжается. Не уверен что это можно отразить в учете как 2 приема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2012, 14:19 |
|
||
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
Аналогично. Не уверен, что регистратура способна запланировать подобный приём и отправить пациента сразу к врачу и на флюорографию. Потому спорить думаю не о чем. Согласен, что подобные возможности следует учесть и вариант топикстартера в этом плане лучше, чем мой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2012, 06:45 |
|
||
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
В первую очередь, я бы посоветовал тщательнее вкопаться в постановку задачи. Там будет энное количество сюрпризов, скажем пример из жизни: в кабинете физиотерапии есть две кушетки, два аппарата электросна, один аппарат электрофореза и один аппарат уж не помню чего. То есть, с одной стороны, кабинет запросто принимает двоих пациентов одновременно, с другой - пациент вынужден ждать, пропуская более поздних, пока освободится "его" аппарат. Насколько я видел, "разрывными приёмами" нигде не заморачиваются. Чаще всего пациенту говорят "получите результаты и запишитесь повторно", в редких случаях - второй раз принимают без записи, пользуясь оставленными по нормативам резервами и времени и чуть сдвигая следующего. С точки зрения структуры базы главную и имхо критическую проблему подхода я вижу в том, что "вообще вся база" оказывается завязана на мелкую и вариативную деталь бизнес-логики. Захотелось отображать картинку "в другом разрешении" - и всё, сущи вёсла, начиная с переделки базы и хранимок. Поэтому хочется спросить - а зачем вообще эти припрыжки, кто мешает хранить интервал как интервал, from/to? Разворачивать матрицу для календаря легко сможет хранимка - уж в Firebird с этим проблем быть не должно. Чуть пострадают декларативные проверки целостности, но их можно сделать в процедурах вставки, да и на клиенте контроль будет наглядным. Зато за счёт сокращения количества данных и улучшения структуры.. думаю, общее качество повысится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2012, 16:13 |
|
||
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
Спасибо за высказывания. Я пришел к следующему выводу: 1. Поскольку планируется отображать расписание в шедулере совершенно конкретного компонента (cxScheduler), то и структура базы будет регламентирована именно этим компонентом 2. Согласно п.1, время приема определяется банально двумя датами (старт и финиш), поэтому нет смысла городить огород с интервалами 3. данные в сетке шедулера логически группируются по дате и субъекту (кабинет, кушетки в кабинете, доктора), вот именно эти сущности и имеет смысл выделять в отдельные табли, делая ФК на них в основной табле планнера Как-то так... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2012, 00:44 |
|
||
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
Док, так называемый шедулер (впридачу и гант) девок - говно полное не советую пользоваться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2012, 02:06 |
|
||
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
Док1. Поскольку планируется отображать расписание в шедулере совершенно конкретного компонента (cxScheduler), то и структура базы будет регламентирована именно этим компонентом RIP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2012, 02:32 |
|
||
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
ViPRosне советую пользоваться есть достойная альтернатива, кроме своего велосипеда? softwarerRIP в смысле, покойся с миром? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2012, 09:49 |
|
||
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
Док, мой велоспиед то как раз самая достойная альтернатива многим вещам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2012, 10:36 |
|
||
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
ViPRosмой велоспиед и он раздается всем желающим бесплатно и по первому требованию? ;) зы. Ганнт нарисован на обычной сетке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2012, 10:46 |
|
||
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
Док, 1. ниче не раздается (да и девки бесплатно не дают обычно) 2. что означает - "обычная сетка"? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2012, 10:47 |
|
||
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
есть и другие ганты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2012, 10:57 |
|
||
|
Проектирование planner'а: нужен совет
|
|||
|---|---|---|---|
|
#18+
ViPRos2. что означает - "обычная сетка"? :) стринггрид, дбгрид? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2012, 11:48 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38090381&tid=1541421]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
999ms |
get topic data: |
9ms |
get forum data: |
4ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 1314ms |

| 0 / 0 |
