====== Инструкция по работе с базой данных ====== ~~TOC:2-4 ~~ [[{}:remd|← Назад]] ==== Подключение к базе ==== 1. Для подключения к базе данных (далее БД) необходимо открыть приложение DBeaver и в левом верхнем углу нажать на кнопку “Новое соединение”. {{:remd:istr.remd_1.jpg?200|}} 2. Выбрать тип БД, к которой необходимо подключиться и нажать “Далее”. {{:remd:istr.remd_2.jpg?200|}} 3. В окне настроек соединения, которое откроется следом, надо заполнить поля: Хост - адрес сервера, на котором развернута БД; Порт; База данных – имя БД; Пользователь – имя пользователя БД; Пароль – пароль пользователя БД (поставить галочку «сохранять пароль локально» чтобы не вводить его при каждом подключении к БД). {{:remd:istr.remd_3.jpg?200|}} Когда все поля будут заполнены, появится возможность провести тест соединения. Рекомендуется этой возможностью воспользоваться и нажать на одноименную кнопку в левом нижнем углу окна. Если тест соединения успешно пройден, то появится небольшое сообщение с временем отклика сервера БД и информацией о ее версии. Ознакомившись, это сообщение можно закрыть, и нажать “Готово” В случае, если выходит сообщение об ошибке, необходимо проверить правильность заполнения полей и доступность сервера. {{:remd:istr.remd_4.jpg?200|}} Чтобы открыть редактор SQL запросов нужно перейти во вкладку “Редактор SQL” и выбрать пункт “Новый Редактор SQL”. {{:remd:istr.remd_5.jpg?200|}} ---- ==== Перезапросить статус документа во ФРЭМД, переотправить документ в ФРЭМД (отправка на повторную регистрацию) ==== Бывают случаи, когда по документу долго не приходит асинхронный ответ от ФРЭМД или не приходит вообще. В таком случае можно перезапросить статус документа в ФРЭМД. Также перезапрос статуса документа необходим, когда в асинхронном ответе от ФРЭМД (ответ на запрос регистрации документа) вернулась ошибка с кодом 'NOT_UNIQUE_PROVIDED_ID' или 'CANT_REG_VERSION' 1. Необходимо найти нужный документ в БД. Для этого в ранее открытый редактор SQL вводим: select * from update_registry_item where local_uid = ‘ Если документ не найден таблица ниже будет пустой, как на скриншоте. {{:remd:istr.remd_6.jpg?200|}} В этом случае добавляем его с помощью следующего запроса: INSERT INTO emds.update_registry_item (local_uid, status, upload_dt) select md.local_uid, '1', timezone('UTC':: text, now()) FROM emds.med_docs md left join emds.update_registry_item u on md.local_uid=u.local_uid where md.local_uid in ('') Если в асинхронном ответе от ФРЭМД была ошибка 'NOT_UNIQUE_PROVIDED_ID', то запрос должен быть таким:  INSERT INTO emds.update_registry_item (local_uid, status, upload_dt) select md.local_uid, '1', timezone('UTC'::text, now()) FROM emds.med_docs md left join emds.update_registry_item u on md.local_uid=u.local_uid where emdr_metadata -> 'errors' -> 0 ->> 'code' = 'NOT_UNIQUE_PROVIDED_ID' and create_dt>='<ограничение по дате публикации документа в РРЭМД>' and u.local_uid is null И для ошибки 'CANT_REG_VERSION' соответственно: INSERT INTO emds.update_registry_item (local_uid, status, upload_dt) select md.local_uid, '1', timezone('UTC'::text, now()) FROM emds.med_docs md left join emds.update_registry_item u on md.local_uid=u.local_uid where emdr_metadata -> 'errors' -> 0 ->> 'code' = 'CANT_REG_VERSION' and create_dt>='<ограничение по дате публикации документа в РРЭМД>' and u.local_uid is null 2. Далее необходимо снова выполнить запрос select * from update_registry_item where local_uid = ‘ и в полученной выборке посмотреть значение колонки «status». {{:remd:istr.remd_7.jpg?200|}} 1 - статус документа еще не запрошен в ФРЭМД 2 - статус документа успешно запрошен в ФРЭМД 3 - статус документа запрошен в ФРЭМД, но вернулась ошибка Если получили status=2, то смотрим в таблице med_docs что вернулось (документ либо зарегистрирован в ФРЭМД, либо по нему ошибка) Сделать это можно с помощью следующего запроса: select * from med_docs md where local_uid = ‘ Если получили status=3, то необходимо посмотреть колонку emds.update_registry_item.error_message {{:remd:istr.remd_8.jpg?200|}} Если emds.update_registry_item.error_message <> 'Ошибка получения регистрационных сведений: Документ не найден', то это системная ошибка ФРЭМД и нужно по новой перезапросить статус, для этого делаем апдейт status=1 для этой записи: UPDATE emds.update_registry_item set status = 1 where local_uid in ('') Если в итоге получили error_message = 'Ошибка получения регистрационных сведений: Документ не найден', то это значит, что документ не зарегистрирован во ФРЭМД и нужно переотправить его повторно на регистрацию. Для этого выставляем is_done = false в таблице emdfr_send_task для соответствующей записи: UPDATE emds.emdfr_send_task set is_done = false where local_uid in ('') Данный запрос ставит документ в очередь на отправку. После его выполнения документ будет обработан в очереди и отправлен во ФРЭМД. Документы следует переотправлять только по истечении определенного времени с момента первой отправки на регистрацию. Рекомендуемые сроки для направления на МСЭ 2-3 дня, для остальных видов документов 5-7 дней.