После работы с dcmtk на C ++ я бы хотел использовать его в javascript, но я думаю, что это не так просто, как с C ++.
есть ли способ сделать это? заранее спасибо.
После работы с dcmtk на C ++ я бы хотел использовать его в javascript, но я думаю, что это не так просто, как с C ++.
есть ли способ сделать это? заранее спасибо.
Я согласен с Джоном, я бы посоветовал поискать набор инструментов JavaScript DICOM вместо того, чтобы устанавливать интерфейс между DCMTK и JavaScript.
Однако, чтобы ответить на ваш вопрос:
Во-первых, примите базовое решение, хотите ли вы использовать исполняемые файлы инструментария в виде слоя сценариев, который вызывается через функции JS, или для написания функций C ++ - CGI на основе библиотек DCMTK. Я думаю, что очевидно, что последний подход дает вам гораздо больше гибкости при разработке функциональности DICOM. Далее я упомяну исполняемые файлы, которые могут выполнять определенные задачи. Если вы хотите пойти по пути CGI, исходный код исполняемого файла является хорошей отправной точкой для изучения того, как использовать библиотеку.
Чтобы прочитать информацию из заголовка DICOM, загляните в dcmdump. Он может преобразовывать двоичный формат заголовка DICOM в текстовый файл, который можно легко проанализировать с помощью функций JS, не поддерживающих DICOM.
Для создания двоичных объектов DICOM используйте дополнительный инструмент dump2dcm, который преобразует текстовый файл в формате, созданном dcmdump, обратно в двоичный файл DICOM.
Чтобы преобразовать изображения в "формат веб-изображений" (например, PNG или JPEG), вы можете использовать dcmj2pnm. Он берет изображение DICOM и визуализирует его с помощью некоторых простых функций визуализации (масштабирование, поворот, управление окнами).
Все эти инструменты предоставляют множество параметров через интерфейс командной строки для управления выводом.
Есть и другие инструменты, которые могут быть полезны, но, не зная больше о вариантах использования, которые вы хотите поддержать, это информация, которую я могу предоставить. Обратите внимание еще раз, что я явно не хочу советовать вам использовать эти подходы, поскольку они очень ограничены с точки зрения оптимизации производительности и обработки ошибок.