Проект

Общее

Профиль

Разработка #5935

открыто

[Взаимодействие с ЛК Заказчика] Тестирование и внесение исправление в функциональность, связанную с Личным кабинетом заказчика в ДТ-Синтезе

Добавил(а) Андрей Ерзунов около 1 месяца назад. Обновлено 4 дня назад.

Статус:
Требуется доработка (тест)
Приоритет:
Срочный
Назначена:
Дата начала:
06.04.2026
Срок завершения:
Готовность:

0%

Оценка временных затрат:
24:00 ч
Участок:
Общее
Тип задачи:
Новая разработка
Общее время (ч):
0.00
Ревьюер:
Тестировщик:
Ожидается содействие:

Описание

Со стороны ДТ-Синтеза в разделе "Заказы" появился новый пункт меню "Заявки на синтез".
На данной странице подгружается список заявок, созданных в Личном кабинете заказчика.
ДТ-Синтез раз в минуту запрашивает новый список заявок со статусом "На рассмотрении" из Личного кабинета закачзика.

1. Детали заявки на синтез

Нажав на строку с соответствующей заявкой будет выполнен переход на страницу "Деталей заявки на синтез" . В верхней части страницы располагается блок с общими параметрами заявки , которые можно редактировать посредством соответствующей кнопки . При редактировании параметров, - изменения должны примениться и у соответствующей заявки в Личном кабинете заказчика. Раз в минуту ДТ-Синтез отправляет в Личный кабинет запрос на синхронизацию, поэтому ориентировочно в течение этого времени соответствующая запись заявки должна обновиться в Личном кабинете.

В Личном кабинете с заявкой связан определённый Email пользователя , а в ДТ-Синтезе, есть сущность Клиент , которая связана с заказами и указывается при их создании. По сути это одно и тоже, но в разных приложениях, поэтому если мы однажды для определённого Email'а в заявке выберем определённое значение заказчика, - это соответствие сохранится и впоследствии поле "Заказчик" будет заполняться автоматически ранее выбранным значением, соответствующих определённому Email'у, для новых заявок.

По поводу деталей заявки также стоит упомянуть, что ниже располагается блок со Списком олигов в заявке, - исходно с теми же параметрами, что были указаны при создании заявки в Личном кабинете.

Важный момент. В ДТ-Синтезе есть своя сущность олига , с системным названием, из Справочника олигонуклеотидов, а при создании заявки пользователь (внешний заказчик) не имеет представления о том, какие названия олигов зарегистрированы в ДТ-Синтезе для определённых последовательностей олигов, и тем более, между разными проектами одна и та же последовательность может называться по-разному. В связи с этим, для олигов в заявке, в ДТ-Синтезе, было введено поле "Проектное название" , которое может отличаться от названия сущности Олига в справочнике.

Данное проектное название можно редактировать, нажав на правую кнопку мыши по значению проектного названия, в тех местах, где оно используется.
Данное название отображается:
1. На странице Деталей заявки (/synthesisRequests/<id>).
2. На всех страницах в разделе УВПН, где есть списки олигов (таблицы с олигами).
3. В компоненте деталей Научного заказа (/scientificOrders/<id>).
4. На странице информации о Пробирке и Планшете, при клике на ячейку.

В общем случае проектное название олига - редактируемое , одинаковым образом (с помощью правой кнопки мыши), а также, при отображении данного названия в таблицах используется общее правило: если Проектное название олига отличается от названия сущности Олига в системе, - отображается информация об обоих названиях, иначе - отображается только одно значение, но возможность редактирования остаётся.

Редактирование названия в общем случае автоматически сохраняется в базе при нажатии на кнопку "Подтвердить" в модальном окне редактирования.

За исключением ситуации, когда проектное название редактируется в момент создания заказа , связанного с заявкой в ДТ-Синтезе. Более подробно о данной функциональности постараюсь расписать в следующем пункте.

2. Создание заказа, связанного с заявкой на синтез.

При нажатии на кнопку "Создать заказ" на странице Деталей заявки на синтез, - пользователь перенаправляется на форму создания закза, похожую на стандартную, за тем исключением, что в верхней части страницы отображается блок с информацией о связанной заявке, а также информация о списке олигов в заявке. Данный блок - сворачиваемый.

Параметры заказа должны заполняться соответствующими параметрами из заявки (при их наличии).

При открытии страницы создания заказа, связанного с заявкой, - система автоматически пробует найти сущности Олигов, имеющиеся в системе , и сопоставить их с сущностями Олигов в заявке. Автоматическое добавление олигов в заказ, в блок "Список олигонуклеотидов" работает аналогично стандартному созданию заказа, за тем исключением, что в качестве параметров добавляемых олигов система использует значения, указанные для соответствующего олига в заявке. В качестве названия сущности Олига в ДТ-Синтезе система подставляет проектное название олига из заявки. В связи с чем, в нижней таблице со списком олигов могут отображаться несоответствия, аналогичные тем, что есть при создании стандартного заказа в системе.


Во всех модальных окнах по разрешению таких несоответствий добавлена возможность редактирования "Проектного названия" олига. Соответствующая возможность с указанием проектного названия добавлена и в стандартное модальное окно Добавления олига в заказ.

При импорте информации из .csv также добавлена функциональность автоматического сопоставления Олигов из ДТ-Синтеза с олигами в заявке, а также в .csv-файл добавлена поддержка дополнительного поля "projectName", соответствующего проектному названию олига.

На всякий случай напомню , что в отличие от всех остальных мест в системе, - изменения после редактирования проектного названия олига во время создания заказа будут применены только при нажатии на кнопку "Сохранить изменения и сформировать заказ".

У пользователя в ДТ-Синтезе при создании заказа есть возможность полностью изменить состав олигов в рамках заказа, а следовательно и в рамках заявки . То есть пользователь может удалить информацию из таблицы "Список олигонуклеотидов", а также удалить информацию из Списка олигов в заявке, после этого добавить те олиги, которые посчитает нужным, и после сохранения информации о новом заказе, - обновлённая информация о составе олигов в заявке должна появиться на страницах Деталей заявки, как в ДТ-Синтезе, так и в Личном кабинете заказчика.

В блоке "Список олигов в заявке" для дополнительной индикации разработаны следующие обозначения.
  • Значок галочки сигнализирует о том, для записи олига в заявке была добавлена запись сущности Олига из ДТ-Синтеза.

    Если для всех олигов в заявке были выбраны записи Олигов из ДТ-Синтеза, - тот же значок начинает отображаться и справа от заголовка данного блока.
  • Для олигов, которые исходно не находились в заявке, но были добавлены во время создания заказа предусмотрена отдельная иконка.

3. Формирование детального статуса олигов в заявке

После того, как заказ в ДТ-Синтезе будет создан, - ДТ-Синтез будет раз в минуту собирать информацию о заявках в своей базе с любым статусом, отличным от статуса "Выполнена" , и отправлять информацию для обновления соответствующей заявки в Личном кабинете. В рамках этой синхронизации могут обновляться как общие параметры заявки, отредактированные в ДТ-Синтезе, так и состав олигов, который был изменён в ДТ-Синтезе, а также их детальный статус по этапам, более подробно про отображение которого было указано в задаче https://redmine.dna-tech.dev/issues/5933.

Приведу краткое описание того, в какой момент в ДТ-Синтезе происходит фиксация дат завершения этапов синтеза для каждого из олигов в заявке .
Для олигов на текущий момент выделяются следующие стадии:

Для каждой из стадий есть своя теоретическая длительность выполнения:
1. Принят в работу.
В качестве фактической даты завершения данной стадии выступает дата создания заказа в ДТ-Синтезе .

2. Синтез.
В качестве фактической даты завершения данной стадии выступает дата последней передачи олига с УС (через стандартный функционал передачи или через концентрирование).

3. Очистка.
В качестве фактической даты завершения данной стадии выступает дата последней передачи олига с УПР (через стандартный функционал передачи или через концентрирование).

4. Клик.
В качестве фактической даты завершения данной стадии выступает дата последней передачи олига с УКХ (через стандартный функционал передачи или через концентрирование).

5. Повторная очистка.
В качестве фактической даты завершения данной стадии выступает дата последней передачи олига с УПР (через стандартный функционал передачи или через концентрирование), после того, как олиг побывал на УКХ и был принят там в работу через соответствующий функционал .

6. Контроль качества.
7. Выпуск.
Две данные стадии на текущий момент считаются завершёнными в одно и то же время.
В качестве фактической даты завершения данных стадий на текущий момент выступает следующее условие:
Если для олига была зафиксирована передача заказчику через функционал передачи олигов заказчику на странице Деталей научного заказа, или же соответствующий заказ был закрыт с помощью функциональности закрытия научного заказа, - из двух данных дат берётся наименьшая (но достаточно хотя бы одной).

После закрытия заказа у связанной заявки в ДТ-Синтезе обновляется статус на "Выполнена" , - после чего данный статус должен в течение ~1 минуты быть установлен и у заявки в Личном кабинете, вместе с текущими параметрами заявки в ДТ-Синтезе и детальными статусами олигонуклеотидов, после чего для данной заявки ДТ-Синтез перестаёт отправлять запросы на синхронизацию в Личный кабинет , так как для синхронизации выбираются только заявки, у которых статус отличен от статуса "Выполнена". Но смена статуса всё ещё доступна на Деталях заявки в ДТ-Синтезе, поэтому при необходимости синхронизацию всё ещё можно выполнить, но для этого необходимо вернуть статус заявки на "В работе".

В тестовых целях, для корректной работы закрытия заказа (и установки дат у финальных стадий синтеза олигов в заявках) можно было бы передать олиги на УВПН, после чего установить им статус по контролю "ОК" с помощью функциональности, представленной на скриншоте.

Затем, на деталях соответствующего Научного заказа, данным олигам в заказе необходимо установить "Статус ОК по контролю".

После чего, нажав на кнопку "Закрыть заказ", - появится возможность отсканировать все необходимые физические олиги и выполнить закрытие заказа.

Личный кабинет заказчика должен быть доступен по адресу:
https://customer-portal-feature-creatingrequests-cicd.dna-tech.dev/

Соответствующее ему приложение ДТ-Синтеза доступно по адресу:
https://sintez-oligs-customer-portal-managing-synthesis-reque.dna-tech.dev/


Файлы

clipboard-202604061124-wilqj.png (3,84 КБ) clipboard-202604061124-wilqj.png Андрей Ерзунов, 06.04.2026 08:24
clipboard-202604061125-rza6m.png (28,6 КБ) clipboard-202604061125-rza6m.png Андрей Ерзунов, 06.04.2026 08:25
clipboard-202604061128-ax0ca.png (49 КБ) clipboard-202604061128-ax0ca.png Андрей Ерзунов, 06.04.2026 08:28
clipboard-202604061135-ubada.png (44,6 КБ) clipboard-202604061135-ubada.png Андрей Ерзунов, 06.04.2026 08:35
clipboard-202604061136-rt1ro.png (67,2 КБ) clipboard-202604061136-rt1ro.png Андрей Ерзунов, 06.04.2026 08:36
clipboard-202604061141-haslg.png (746 байта) clipboard-202604061141-haslg.png Андрей Ерзунов, 06.04.2026 08:41
clipboard-202604061143-ydu2q.png (5,52 КБ) clipboard-202604061143-ydu2q.png Андрей Ерзунов, 06.04.2026 08:43
clipboard-202604061144-orsmj.png (29,2 КБ) clipboard-202604061144-orsmj.png Андрей Ерзунов, 06.04.2026 08:44
clipboard-202604061246-czngh.png (16,8 КБ) clipboard-202604061246-czngh.png Андрей Ерзунов, 06.04.2026 09:46
clipboard-202604061347-gakyf.png (142 КБ) clipboard-202604061347-gakyf.png Андрей Ерзунов, 06.04.2026 10:47
clipboard-202604061348-tvl0m.png (133 КБ) clipboard-202604061348-tvl0m.png Андрей Ерзунов, 06.04.2026 10:48
clipboard-202604061353-fup29.png (2,61 КБ) clipboard-202604061353-fup29.png Андрей Ерзунов, 06.04.2026 10:53
clipboard-202604061353-km6lu.png (22,4 КБ) clipboard-202604061353-km6lu.png Андрей Ерзунов, 06.04.2026 10:53
clipboard-202604131359-wubjm.png (31 КБ) clipboard-202604131359-wubjm.png Анастасия Егорова, 13.04.2026 10:59
clipboard-202604131359-tspcy.png (32,5 КБ) clipboard-202604131359-tspcy.png Анастасия Егорова, 13.04.2026 10:59
clipboard-202604131406-cybgk.png (37 КБ) clipboard-202604131406-cybgk.png Анастасия Егорова, 13.04.2026 11:06
clipboard-202604131456-uztj5.png (13,7 КБ) clipboard-202604131456-uztj5.png Анастасия Егорова, 13.04.2026 11:56
clipboard-202604131504-eeknh.png (91,3 КБ) clipboard-202604131504-eeknh.png Анастасия Егорова, 13.04.2026 12:04
clipboard-202604131504-wz9se.png (84,5 КБ) clipboard-202604131504-wz9se.png Анастасия Егорова, 13.04.2026 12:04
clipboard-202604131513-4knzx.png (84,9 КБ) clipboard-202604131513-4knzx.png Анастасия Егорова, 13.04.2026 12:13
clipboard-202604131513-z2nih.png (81,9 КБ) clipboard-202604131513-z2nih.png Анастасия Егорова, 13.04.2026 12:13
clipboard-202604131515-ksjzi.png (28,7 КБ) clipboard-202604131515-ksjzi.png Анастасия Егорова, 13.04.2026 12:15
clipboard-202604131551-qzscs.png (49,2 КБ) clipboard-202604131551-qzscs.png Анастасия Егорова, 13.04.2026 12:51
clipboard-202604131601-y9sur.png (89,5 КБ) clipboard-202604131601-y9sur.png Анастасия Егорова, 13.04.2026 13:01
clipboard-202604161126-pmio5.png (385 КБ) clipboard-202604161126-pmio5.png Анастасия Егорова, 16.04.2026 08:26
clipboard-202605051516-8xpq5.png (79,1 КБ) clipboard-202605051516-8xpq5.png Анастасия Егорова, 05.05.2026 12:16
clipboard-202605051517-96xgo.png (180 КБ) clipboard-202605051517-96xgo.png Анастасия Егорова, 05.05.2026 12:17

Экспортировать в Atom PDF