Тема: ВЕБ ШМД

№9707
1
Партнер
АЛТЭГ
Сообщений: 43
Рейтинг пользователей: 1
Регистрация: 01.06.2018

Добрый день.

Попробывал создать свой Веб-ШМД

При проверки ШМД  макет серелизуется  компанентами  Жалобы  Анамнез жизни Объективный статус Дигноз, но  

выдает одну ошибку 

Не удалось использовать XDTO обработчик тела документа. Вероятнее всего сформированный документ имеет ошибки.
Ошибка проверки данных XDTO:

Эта ошибка возникает при нажатие на команду "Документ не готов" в Медецинском документе
Структура объекта не соответствует типу: {urn:hl7-org:v3}CE

№9709
0
Пользователь

Сообщений: 246
Рейтинг пользователей: 10
Регистрация: 22.10.2012

Добрый день.
Приложите, пожалуйста, созданный Вами ШМД, чтобы мы смогли отправить его разработчику для анализа.

№9711
0
Партнер
АЛТЭГ
Сообщений: 43
Рейтинг пользователей: 1
Регистрация: 01.06.2018

https://ru.files.fm/u/jjj3xyng#_

№9722
0
Партнер
АЛТЭГ
Сообщений: 43
Рейтинг пользователей: 1
Регистрация: 01.06.2018

Добрый день.

После отладки, пришли к заключению: 

getObjectByRef() - эта функция вообще отсутсвует на строне 1С
getMRRef() - эта функция пустая;
getPatientConditions - эта функция выдает ошибку 

Я так понимаю,  модуль  web-шмд не работаспособен. И требует глобальной доработки.  

Или есть варианты решения этого вопроса?

№9750
0
Пользователь

Сообщений: 246
Рейтинг пользователей: 10
Регистрация: 22.10.2012

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

№9761
0
Партнер
АЛТЭГ
Сообщений: 43
Рейтинг пользователей: 1
Регистрация: 01.06.2018

Добрый день.

Конфигурация 1С Медицина. Больница, редакция 1.4 (1.4.2.1)  

Пытаюсь по кнопке получить результат из базы данных с помошью метода queryEMR(,);

Что я неправильно делаю, callbackFunc не выполняется.

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function GetRepresentative()
{
        var curDate = getCurrentServerDate();
        
    queryEMR(
"ВЫБРАТЬ"+
    "МедицинскийДокументВыполненныеУслуги.Номенклатура.Представление КАК Номенклатура," +
    "МедицинскийДокументИсполнители.Исполнитель.Представление КАК Исполнитель," +
    "МедицинскийДокументИсполнители.Ссылка.Пациент КАК Пациент" +
"ПОМЕСТИТЬ Исполнитель_Услуга" +
"ИЗ" +
    "Документ.МедицинскийДокумент.Исполнители КАК МедицинскийДокументИсполнители" +
        "ЛЕВОЕ СОЕДИНЕНИЕ Документ.МедицинскийДокумент.ВыполненныеУслуги КАК МедицинскийДокументВыполненныеУслуги" +
        "ПО (МедицинскийДокументИсполнители.Ссылка = МедицинскийДокументВыполненныеУслуги.Ссылка)" +
"ГДЕ" +
    "МедицинскийДокументИсполнители.НомерСтроки = 1" +
    "И МедицинскийДокументИсполнители.Ссылка.Номер В (" + window.CDnumber + ") " +
";" +
"ВЫБРАТЬ" +
    "ЗаконныеПредставителиПациентаСрезПоследних.Основной," +
    "ЗаконныеПредставителиПациентаСрезПоследних.НомерСтроки," +
    "ЗаконныеПредставителиПациентаСрезПоследних.Представитель," +
    "ЗаконныеПредставителиПациентаСрезПоследних.ПримечаниеПредставителя," +
    "ЗаконныеПредставителиПациентаСрезПоследних.УИД," +
    "ЗаконныеПредставителиПациентаСрезПоследних.Регистратор," +
    "ЗаконныеПредставителиПациентаСрезПоследних.Пациент," +
    "ЗаконныеПредставителиПациентаСрезПоследних.Период," +
    "ЗаконныеПредставителиПациентаСрезПоследних.СпециальныйПредставитель" +
"ПОМЕСТИТЬ ВТЗаконныеПредставителиПациентаСрезПоследних" +
"ИЗ" +
    "РегистрСведений.ЗаконныеПредставителиПациента.СрезПоследних(" +
            "ДАТАВРЕМЯ("+curDate.getYear+","+ curDate.getMonth()+","+ curDate.getDay() +", 23,59,59)," +
            "Пациент В" +
                "(ВЫБРАТЬ" +
                    "Врем_Таб.Пациент" +
                "ИЗ" +
                    "Исполнитель_Услуга КАК Врем_Таб)) КАК ЗаконныеПредставителиПациентаСрезПоследних" +
"ИНДЕКСИРОВАТЬ ПО" +
    "ЗаконныеПредставителиПациентаСрезПоследних.УИД" +
";" +
"ВЫБРАТЬ" +
    "ВТЗаконныеПредставителиПациентаСрезПоследних.Основной," +
    "ВТЗаконныеПредставителиПациентаСрезПоследних.НомерСтроки," +
    "ВТЗаконныеПредставителиПациентаСрезПоследних.Представитель," +
    "ВТЗаконныеПредставителиПациентаСрезПоследних.ПримечаниеПредставителя," +
    "ВТЗаконныеПредставителиПациентаСрезПоследних.УИД," +
    "ВТЗаконныеПредставителиПациентаСрезПоследних.Регистратор," +
    "ВТЗаконныеПредставителиПациентаСрезПоследних.Пациент," +
    "ВТЗаконныеПредставителиПациентаСрезПоследних.Период," +
    "ВТЗаконныеПредставителиПациентаСрезПоследних.СпециальныйПредставитель" +
"ПОМЕСТИТЬ ВтораяВТЗаконныеПредставителиПациентаСрезПоследних" +
"ИЗ" +
    "ВТЗаконныеПредставителиПациентаСрезПоследних КАК ВТЗаконныеПредставителиПациентаСрезПоследних" +
"ГДЕ" +
    "ВТЗаконныеПредставителиПациентаСрезПоследних.СпециальныйПредставитель <> ЗНАЧЕНИЕ(Перечисление.СпециальныеЗаконныеПредставители.ПустаяСсылка)" +
"ИНДЕКСИРОВАТЬ ПО" +
    "ВТЗаконныеПредставителиПациентаСрезПоследних.УИД" +
";" +
"ВЫБРАТЬ" +
    "ЗаконныеПредставителиПациентаСрезПервых.УИД" +
"ПОМЕСТИТЬ ТретьяВТ" +
"ИЗ" +
    "РегистрСведений.ЗаконныеПредставителиПациента.СрезПервых(" +
            "ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)," +
            "Пациент В" +
                "(ВЫБРАТЬ" +
                    "Врем_Таб.Пациент" +
                "ИЗ" +
                    "Исполнитель_Услуга КАК Врем_Таб)) КАК ЗаконныеПредставителиПациентаСрезПервых" +
"ИНДЕКСИРОВАТЬ ПО" +
    "ЗаконныеПредставителиПациентаСрезПервых.УИД" +
";" +
"ВЫБРАТЬ" +
    "ВтораяВТЗаконныеПредставителиПациентаСрезПоследних.Основной," +
    "ВтораяВТЗаконныеПредставителиПациентаСрезПоследних.НомерСтроки," +
    "ВтораяВТЗаконныеПредставителиПациентаСрезПоследних.Представитель," +
    "ВтораяВТЗаконныеПредставителиПациентаСрезПоследних.ПримечаниеПредставителя," +
    "ВтораяВТЗаконныеПредставителиПациентаСрезПоследних.УИД," +
    "ВтораяВТЗаконныеПредставителиПациентаСрезПоследних.Регистратор," +
    "ВтораяВТЗаконныеПредставителиПациентаСрезПоследних.Пациент," +
    "ВтораяВТЗаконныеПредставителиПациентаСрезПоследних.Период," +
    "ЗаконныеПредставителиПациента.Период КАК СрокДействия," +
    "ВтораяВТЗаконныеПредставителиПациентаСрезПоследних.СпециальныйПредставитель" +
"ПОМЕСТИТЬ ОбщаяТаблица" +
"ИЗ" +
    "ВтораяВТЗаконныеПредставителиПациентаСрезПоследних КАК ВтораяВТЗаконныеПредставителиПациентаСрезПоследних" +
        "ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗаконныеПредставителиПациента КАК ЗаконныеПредставителиПациента" +
        "ПО ВтораяВТЗаконныеПредставителиПациентаСрезПоследних.УИД = ЗаконныеПредставителиПациента.УИД" +
            "И (ЗаконныеПредставителиПациента.Период >= ВтораяВТЗаконныеПредставителиПациентаСрезПоследних.Период)" +
            "И (ЗаконныеПредставителиПациента.Представитель = ЗНАЧЕНИЕ(Справочник.Картотека.ПустаяСсылка))" +
            "И (ЗаконныеПредставителиПациента.СпециальныйПредставитель = ЗНАЧЕНИЕ(Перечисление.СпециальныеЗаконныеПредставители.ПустаяСсылка))" +
"ОБЪЕДИНИТЬ ВСЕ" +
"ВЫБРАТЬ" +
    "ВтораяВТЗаконныеПредставителиПациентаСрезПоследних.Основной," +
    "ВтораяВТЗаконныеПредставителиПациентаСрезПоследних.НомерСтроки," +
    "ВтораяВТЗаконныеПредставителиПациентаСрезПоследних.Представитель," +
    "ВтораяВТЗаконныеПредставителиПациентаСрезПоследних.ПримечаниеПредставителя," +
    "ВтораяВТЗаконныеПредставителиПациентаСрезПоследних.УИД," +
    "ВтораяВТЗаконныеПредставителиПациентаСрезПоследних.Регистратор," +
    "ВтораяВТЗаконныеПредставителиПациентаСрезПоследних.Пациент," +
    "ВтораяВТЗаконныеПредставителиПациентаСрезПоследних.Период," +
    "NULL," +
    "ВтораяВТЗаконныеПредставителиПациентаСрезПоследних.СпециальныйПредставитель" +
"ИЗ" +
    "ВтораяВТЗаконныеПредставителиПациентаСрезПоследних КАК ВтораяВТЗаконныеПредставителиПациентаСрезПоследних" +
"ГДЕ" +
    "ВтораяВТЗаконныеПредставителиПациентаСрезПоследних.Представитель = ЗНАЧЕНИЕ(Справочник.Картотека.ПустаяСсылка)" +
"ОБЪЕДИНИТЬ ВСЕ" +
"ВЫБРАТЬ" +
    "ВТЗаконныеПредставителиПациентаСрезПоследних.Основной," +
    "ВТЗаконныеПредставителиПациентаСрезПоследних.НомерСтроки," +
    "ВТЗаконныеПредставителиПациентаСрезПоследних.Представитель," +
    "ВТЗаконныеПредставителиПациентаСрезПоследних.ПримечаниеПредставителя," +
    "ВТЗаконныеПредставителиПациентаСрезПоследних.УИД," +
    "ВТЗаконныеПредставителиПациентаСрезПоследних.Регистратор," +
    "ВТЗаконныеПредставителиПациентаСрезПоследних.Пациент," +
    "ВТЗаконныеПредставителиПациентаСрезПоследних.Период," +
    "NULL," +
    "ВТЗаконныеПредставителиПациентаСрезПоследних.СпециальныйПредставитель" +
"ИЗ" +
    "ВТЗаконныеПредставителиПациентаСрезПоследних КАК ВТЗаконныеПредставителиПациентаСрезПоследних" +
        "ПОЛНОЕ СОЕДИНЕНИЕ ТретьяВТ КАК ТретьяВТ" +
        "ПО ВТЗаконныеПредставителиПациентаСрезПоследних.УИД = ТретьяВТ.УИД" +
"ГДЕ" +
    "НЕ ВТЗаконныеПредставителиПациентаСрезПоследних.Представитель = ЗНАЧЕНИЕ(Справочник.Картотека.ПустаяСсылка)" +
    "И ТретьяВТ.УИД ЕСТЬ NULL" +
";" +
"ВЫБРАТЬ ПЕРВЫЕ 1" +
    "ЗаконныеПредставителиПациентаОбщаяТаблица.Основной КАК Основной," +
    "ЗаконныеПредставителиПациентаОбщаяТаблица.Представитель КАК Представитель," +
    "ЗаконныеПредставителиПациентаОбщаяТаблица.ПримечаниеПредставителя КАК ПримечаниеПредставителя," +
    "ЗаконныеПредставителиПациентаОбщаяТаблица.УИД КАК УИД," +
    "ЗаконныеПредставителиПациентаОбщаяТаблица.Регистратор КАК Регистратор," +
    "ЗаконныеПредставителиПациентаОбщаяТаблица.Пациент КАК Пациент," +
    "ЗаконныеПредставителиПациентаОбщаяТаблица.Период КАК Период," +
    "ЗаконныеПредставителиПациентаОбщаяТаблица.СрокДействия КАК СрокДействия," +
    "ЗаконныеПредставителиПациентаОбщаяТаблица.СпециальныйПредставитель КАК СпециальныйПредставитель," +
    "Исполнитель_Услуга.Номенклатура КАК Номенклатура," +
    "Исполнитель_Услуга.Исполнитель КАК Исполнитель" +
"ИЗ" +
    "Исполнитель_Услуга КАК Исполнитель_Услуга" +
        "ЛЕВОЕ СОЕДИНЕНИЕ ОбщаяТаблица КАК ЗаконныеПредставителиПациентаОбщаяТаблица" +
        "ПО (ЗаконныеПредставителиПациентаОбщаяТаблица.Пациент = Исполнитель_Услуга.Пациент)" +
"ГДЕ" +
    "ВЫБОР" +
            "КОГДА ТИПЗНАЧЕНИЯ(ЗаконныеПредставителиПациентаОбщаяТаблица.Представитель) = ТИП(СТРОКА)" +
                "ТОГДА ИСТИНА" +
            "КОГДА ТИПЗНАЧЕНИЯ(ЗаконныеПредставителиПациентаОбщаяТаблица.Представитель) = ТИП(Справочник.Картотека)" +
                "ТОГДА ЗаконныеПредставителиПациентаОбщаяТаблица.Представитель.ПометкаУдаления = ЛОЖЬ" +
        "КОНЕЦ",
         function(res) 
         {
                var val = '';
            
              var CDProcessed = {};
                if (res.length > 0) 
                {
                  for (var i = 0; i < res.length; i++)
                  {
                    val = res[i].Представитель;
                    val = val.replace(/^\s+|\s+$/g, '')
                    element = document.createElement("DIV");
                    element.innerHTML = val;
                    el = document.getElementById('isSigned' + CDPositions[res[i].Номер]);
                    if (el && val != '')
                    {
                        el.appendChild(element);
                        CDProcessed['CD' + CDPositions[res[i].Номер]] = 1;
                        
                    };
                    
                  };
                };
         }
     );    
    
    }    

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

№9762
0
Партнер
АЛТЭГ
Сообщений: 43
Рейтинг пользователей: 1
Регистрация: 01.06.2018

Добрый день.

Что я неправильно делаю, callbackFunc не выполняется. С этим разобрался почему на ИТС не описаны все нюансы:

  <input type="hidden" id="isSigned">

  <input style="display: none;" type="button" id="isSigned" onclick="eval(document.getElementById('isSigned').value)">

Добавил эти инпуты в шаблон callbackFunc стал срабатывать. Но остался вопрос по   window.CDnumber, по идее он должен возвращать номер текущего документа, возвращает Неопределено.

 

№9770
0
Партнер
АЛТЭГ
Сообщений: 43
Рейтинг пользователей: 1
Регистрация: 01.06.2018

Добрый день

  window.CDnumber - этот метод так и не заработал. Нашел другой вариант window.CDinformation.НомерДокумента

№9782
0
Пользователь

Сообщений: 246
Рейтинг пользователей: 10
Регистрация: 22.10.2012

Добрый день. По Вашим замечаниям зарегистрированы ошибки.