|
ШМД, динамическое наблюдение, динамические данные | ☑ | ||
---|---|---|---|---|
0
DosBot
10.04.17
✎
11:44
|
Конфигурация: Медицина. Больница, редакция 1.3 (1.3.1.1)
Для отображения ШМД используется стандартный ТабличныйВизуализатор CDA. Пытаюсь реализовать ШМД следующего вида: К массажисту курсами приходит пациент. При каждом посещении отмечаются данные: - Номер процедуры; - Дата процедуры - Время массажа - Вид массажа - и т.д. На выходе необходимо получить печатную форму, где в шапке - общая инфа. (ФИО пациента, дата рождения и т.п.), а далее список ВСЕХ посещений и инфы по ним. Каждое посещение фиксируется отдельным МД (где предлагается выбор: новый курс или продолжить старый) Если при формировании документа всё хранить в ТаблицеЗначений, то естественно при нажатии на "Документ готов" инфа запишится в тело документа в виде xml-структуры и в дальнейшем, при открытии этого МД будет показывать хистори из неё (на момент записи документа). Собственно, проблема только в одном: как без извращений и костылей можно при формировании МД часть данных, касающихся всего курса в целом, выводить НЕ по данным записанным в теле xml, а какими-то своими актуальными данными? Была идея поиграться с ШаблоныМедицинскихДокументовПоликлиникаКлиент.ПолучитьТелоМД(...) Ну или другой вариант: сделать свою кнопку печать которая и будет делать всё как надо, но при этом: а) Если Документ готов = Истина, тогда не выводить как для прочих форм "печатную форму" при открытии МД, а всегда показывать форму его редактирования (вне зависимости от статуса готов/не готов); б) по-человечески интегрировать свою кнопку печати, с учётом что в стандартной форме - Печать она тоже есть... Кто как реализовывал курсовое лечение вообще? :) |
|||
1
DosBot
10.04.17
✎
13:14
|
Up
|
|||
2
DosBot
11.04.17
✎
06:27
|
ещё раз UP
|
|||
3
Cyberhawk
11.04.17
✎
07:01
|
Много букв, ты в картинках и пократче
|
|||
4
Мимохожий Однако
11.04.17
✎
07:02
|
(0) Храни в реквизитах, в табличной части. Таблица значений для другого.
|
|||
5
DosBot
11.04.17
✎
07:41
|
(3) Пример. Пациенту назначили 5 курсов общего массажа.
Он приходит на приём, врач отмечает (каждое посещение отдельным мед. документом): Дата посещения Номер посещения Время массажа Вид массажа 01.04.2017 1 11-00 дифферен-ый 02.04.2017 2 08-00 дифферен-ый 03.04.2017 3 13-00 дифферен-ый 04.04.2017 4 13-00 дифферен-ый 05.04.2017 5 10-00 дифферен-ый (4) Эмм. Прошу учесть особенность конфы - это её философия: по-умолчанию все реквизиты формы сохраняются автоматом в xml-структуру при записи (можно явно указать какие сохранять, какие нет). Т.е. в случае с первым посещением запишется: Дата посещения Номер посещения Время массажа Вид массажа 01.04.2017 1 11-00 дифферен-ый При втором: 01.04.2017 1 11-00 дифферен-ый 02.04.2017 2 08-00 дифферен-ый Всё это в ввиде xml. При открытии самого документа, встроенный механизм берёт xml-файл и строит по нему табличный документ. Получается, что в каждом документе данные только на момент записи. Кто работал с данной конфой вообще? Как-то реализовывали "курсовое лечение"?? Т.е. случаи, когда часть данных берётся из xml-тела документа, а часть - необходимо подтягивать из БД и как-то подсовывать стандартному механизму формирования таб. документа. |
|||
6
Мимохожий Однако
11.04.17
✎
07:58
|
(5) на какой платформе сделано? Какое отношение эта конфигурация имеет отношение к 1С?
|
|||
7
Мимохожий Однако
11.04.17
✎
07:59
|
для чего используется xml-структура?
|
|||
8
DosBot
11.04.17
✎
08:31
|
(6) Общая инфа про конфу: http://solutions.1c.ru/catalog/hospital/features
(7) Касаемо сабжа - есть такое понятие как медицинский документ. Смысл примерно в следующем: есть разные варианты мед. документов - состав их реквизитов различен (приём терапевта, УЗИ брюшной полости и т.п. - разнообразный набор данных). Содержимое документа заполняется с помощью внешней обработки, которая крепится в справочник "Шаблоны медицинских документов". При работе с документом открывается форма этой самой обработки, заполняется, данные сохраняются в виде XML-структуры, где запоминается вся инфа: анамнез, жалобы и проч. (всё, что врач обычно пишет неразборчивым подчерком в поликлинике). Затем, у мед. документа есть понятие "состояния". Если он "готов", то вместо формы где мы все реквизиты заполняем вылазиет табличный документ на печать - данные тянет из той самой xml-структуры, без оглядки, что какие-то данные вообще нужно брать из БД :) |
|||
9
Мимохожий Однако
11.04.17
✎
09:02
|
(8) Если доступен конфигуратор, то начни с изучения справочника "Шаблоны медицинских документов" через отладчик. Больше и не посоветуешь. Полагаю, эта конфигурацию пока еще экзотика.
|
|||
10
Cyberhawk
11.04.17
✎
18:29
|
Разрабы конфы походу решили отмочить финт ушами и не хранить свойства объектов в реквизитах объектов метаданных, а типа динамически каждый раз строят форму объекта, а значения свойств (реквизты) хранят в сериализованном виде
|
|||
11
H A D G E H O G s
11.04.17
✎
18:40
|
||||
12
DosBot
12.04.17
✎
15:29
|
(10) Да. В итоге, например, для связи медицинских документов в рамках одного курса пришлось допиливать, т.к. не вариант хранить ДокументОснование в xml-структуре... :)
(11) Гыгыгы :) |
|||
13
DosBot
13.04.17
✎
07:13
|
В общем решил проблему. И даже без извращений :)
Чтобы при формировании медицинского документа выводить на печать свои динамические данные (любую инфу из БД, как в случае с обычной печатной формой) необходимо доработать "Визуализатор": 1) Сохранить обработку конфигурации ТабличныйВизуализатор во внешнюю; 2) Добавить в её Макет свои области. Например: МояОбластьШапка и МояОбластьСтрока 3) Прописать в МОДУЛЕ ОБЪЕКТА этой обработки ЭКСПОРТНЫЕ Функции с именем области: МояОбластьСтрока(Область, Документ, СсылкаМД, Параметры = Неопределено) Экспорт 4) Прописать алгоритм получения данных и вывода в таб. документ. Примерно так: ... ТабДок_ = Новый ТабличныйДокумент(); МояТЗ = ПолучитьМоюТаблицуДанных(); Макет = ЭтотОбъект.ПолучитьМакет("Макет"); ОбластьШапка = Макет.ПолучитьОбласть("МояОбластьШапка"); ТабДок_.Вывести(ОбластьШапка); Для каждого ТекСтрока Из МояТЗ Цикл ОбластьСтрока = Макет.ПолучитьОбласть("МояОбластьСтрока"); ОбластьСтрока.Параметры.Заполнить(ТекСтрока); ТабДок_.Вывести(ОбластьСтрока); КонецЦикла; Возврат ТабДок_; 5) При желании можно помедитировать над функцией общего модуля: ВизуализаторCDA.СформироватьТабличныйДокумент() |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |