# Lungify ## Envirenment variables [Airflow env variables](https://airflow.apache.org/docs/apache-airflow/stable/start/docker.html#environment-variables-supported-by-docker-compose) ## Как запустить все локально [Тот самый гайд для КФУ](https://docs.google.com/document/d/1tdyYlw8w6o7iQeg_hcoeVbqqc_dJdhzBk1F5acqoJE4/edit) Из этого гайда мы возьмем вот что: 1. `docker pull harbor.stageogip.ru/lungify/airflow:pilot_kfu-latest` 2. `docker pull harbor.stageogip.ru/lungify/adapter:pilot_kfu-latest` 3. > Ae2Dag mappings : { "LungifyDefault": "default_kfu_lung" } 4. `docker pull nvcr.io/nvidia/tritonserver:20.07-py3` 5. Скачать airflow-config из tfs для ветки `pilot_kfu` https://tfs.university.innopolis.ru/tfs/ai_lab/Medicine/_build?definitionId=123 6. Скачать dicom-adapter-config из tfs для ветки `pilot_kfu` https://tfs.university.innopolis.ru/tfs/ai_lab/Medicine/_build?definitionId=122 7. Скачать Publish dags, plugins, tests для ветки `pilot_kfu` https://tfs.university.innopolis.ru/tfs/ai_lab/Medicine/_build?definitionId=118 > Можно брать ветку `master`. В ней находится вся актуальная информация 7. Создать папку `/opt/Lungify`, если она не создана 8. Создать network `docker network create Lungify` 9. Создать `/opt/Lungify/dicom_adapter` 10. Перенести файлы из архива `config.zip` (который ранее скачивали см. пункт 5) в dicom_adapter 11. Создать `/opt/Lungify/workflow` 12. Создать `/opt/Lungify/fails` 13. Создать `/opt/Lungify/workflow/logs` 14. Скопировать из `drop.zip` (см. пункт 4) файлы в `/opt/Lungify/workflow/` (Должна остаться папка `drop`)достать содержимое drop 15. Переместить файлы из `dags.zip` `tests.zip` `plugins.zip` (из папки см. пункт 6) в `/opt/Lungify/workflow/dags`, `/opt/Lungify/workflow/tests`, `/opt/Lungify/workflow/plugins` ### Запуск адаптера 1. Перейти в dicom_adapter 2. export `IMAGE_TAG=<...>`. Посмотреть tag image `docker images` 3. `export WEB_PORT=8042` 4. Заходим на ip:8042 (где IP - ip адрес сервера, на котором поднят dicom_adapter) > В моем случае localhost 5. `docker-compose up -d` 6. Вводим логин и пароль demo:demo ### Запуск workflow 1. Перейти в workflow 2. `export `IMAGE_TAG=<>`` 3. export `CONFIG_NAME=<см. в папке configs>`. Если запускаешь локально, то в конфиге нужно убрать callback kafka и telegram 4. `export FAILS_PATH="/opt/Lungify/fails"` 5. `export PUBLIC_IP=` 6. `export WEB_PORT=8090` 7. `docker-compose up -d` 8. Перейти по ссылке http://SERVER_IP:8090/home и ввести логин и пароль airflow:airflow . **Выдать права на папку `chmod -R 777 /opt/Lungify/`** ### Как тестить Скачать файл https://drive.google.com/file/d/1OvQ5KdDv2PLbSl4ZVVSQc8MuBbtU5Q4w/view?usp=sharing Удалить из конфига и файла, описывающий DAG (на данный момент это `lung.py`), всё, что связано с `kafka` и `telegram` Запустить эту команду `storescu dicom_adapter 4242 IM_00685 -xs -aec LungifyDefault` ***Если storescu почему-то у вас не установлен*** > docker run --rm -it --name dcmtk --network Lungify -v path_to_file:/demo darthunix/dcmtk:latest /bin/sh Переход внуть контейнера, надо ввести эту команду > cd demo > storescu dicom_adapter 4242 IM_00685 -xs -aec LungifyDefault **NOTE** Проверить LungifyDefault (ae) и в конфиге файле в самом внизу при помощи **логов dicom adapter'a** ``` docker logs dicom adapter ``` Должна быть такая информация ``` Ae2Dag mappings : { "LungifyDefault": "default_kfu_lung" } ``` **Отсюда и берем нужный AE**. Прописываем в storescu и в конфиг файл **NOTE** Если study зафейлилось, то нужно его удалить из dicom adapter'а, а только потом загружать снова Дождаться появления нового dag’a и включить: как показано на рисунке ![](https://i.imgur.com/ha78i4o.png)