Справочно-информационный портал

© Группа компаний ХОСТ, www.hostco.ru, 2015-2017

Инструменты пользователя

Инструменты сайта


remd:info_db

Инструкция по работе с базой данных

Подключение к базе

1. Для подключения к базе данных (далее БД) необходимо открыть приложение DBeaver и в левом верхнем углу нажать на кнопку “Новое соединение”.

2. Выбрать тип БД, к которой необходимо подключиться и нажать “Далее”.

3. В окне настроек соединения, которое откроется следом, надо заполнить поля: Хост - адрес сервера, на котором развернута БД; Порт; База данных – имя БД; Пользователь – имя пользователя БД; Пароль – пароль пользователя БД (поставить галочку «сохранять пароль локально» чтобы не вводить его при каждом подключении к БД).

Когда все поля будут заполнены, появится возможность провести тест соединения. Рекомендуется этой возможностью воспользоваться и нажать на одноименную кнопку в левом нижнем углу окна.

Если тест соединения успешно пройден, то появится небольшое сообщение с временем отклика сервера БД и информацией о ее версии. Ознакомившись, это сообщение можно закрыть, и нажать “Готово”

В случае, если выходит сообщение об ошибке, необходимо проверить правильность заполнения полей и доступность сервера.

Чтобы открыть редактор SQL запросов нужно перейти во вкладку “Редактор SQL” и выбрать пункт “Новый Редактор SQL”.


Перезапросить статус документа во ФРЭМД, переотправить документ в ФРЭМД (отправка на повторную регистрацию)

Бывают случаи, когда по документу долго не приходит асинхронный ответ от ФРЭМД или не приходит вообще. В таком случае можно перезапросить статус документа в ФРЭМД. Также перезапрос статуса документа необходим, когда в асинхронном ответе от ФРЭМД (ответ на запрос регистрации документа) вернулась ошибка с кодом 'NOT_UNIQUE_PROVIDED_ID' или 'CANT_REG_VERSION'

1. Необходимо найти нужный документ в БД. Для этого в ранее открытый редактор SQL вводим:

select * from update_registry_item where local_uid = ‘<localUid вашего документа>’

Если документ не найден таблица ниже будет пустой, как на скриншоте.

В этом случае добавляем его с помощью следующего запроса:

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 ('<localUid вашего документа>')

Если в асинхронном ответе от ФРЭМД была ошибка '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 = ‘<localUid вашего документа>’

и в полученной выборке посмотреть значение колонки «status».

1 - статус документа еще не запрошен в ФРЭМД 2 - статус документа успешно запрошен в ФРЭМД 3 - статус документа запрошен в ФРЭМД, но вернулась ошибка

Если получили status=2, то смотрим в таблице med_docs что вернулось (документ либо зарегистрирован в ФРЭМД, либо по нему ошибка) Сделать это можно с помощью следующего запроса:

select * from med_docs md where local_uid =  ‘<localUid вашего документа>’

Если получили status=3, то необходимо посмотреть колонку emds.update_registry_item.error_message

Если emds.update_registry_item.error_message <> 'Ошибка получения регистрационных сведений: Документ не найден', то это системная ошибка ФРЭМД и нужно по новой перезапросить статус, для этого делаем апдейт status=1 для этой записи:

UPDATE emds.update_registry_item
set status = 1
where local_uid in ('<localUid вашего документа>')

Если в итоге получили error_message = 'Ошибка получения регистрационных сведений: Документ не найден', то это значит, что документ не зарегистрирован во ФРЭМД и нужно переотправить его повторно на регистрацию. Для этого выставляем is_done = false в таблице emdfr_send_task для соответствующей записи:

UPDATE emds.emdfr_send_task
set is_done = false
where local_uid in ('<localUid вашего документа>')

Данный запрос ставит документ в очередь на отправку. После его выполнения документ будет обработан в очереди и отправлен во ФРЭМД.

Документы следует переотправлять только по истечении определенного времени с момента первой отправки на регистрацию. Рекомендуемые сроки для направления на МСЭ 2-3 дня, для остальных видов документов 5-7 дней.

remd/info_db.txt · Последние изменения: 2022/06/15 13:47 — Системный администратор