cornerstonejs / cornerstone

JavaScript library to display interactive medical images including but not limited to DICOM
https://docs.cornerstonejs.org/
MIT License
2.06k stars 598 forks source link

путь к файлам *.dcm #441

Open alarihwertbars opened 4 years ago

alarihwertbars commented 4 years ago

Добрый день. Помогите разобраться. Создал проект в Visual Studio 2019 на базе asp.net core MVC. Добавил в проект вашу библиотеку. Не могу понять где должны хранится в проекте файлы *.dcm и какое у них должно быть наименование, особенно если учесть что это серия снимков dcm, около тысячи снимков?

dannyrb commented 4 years ago

Good afternoon. Help me to understand. Created a project in Visual Studio 2019 based on asp.net core MVC. Added your library to the project. I can’t understand where the * .dcm files should be stored in the project and what their name should be, especially when you consider that this is a series of dcm pictures, about a thousand pictures? - Google Translate

Response

English

Here is an example of a common setup:

https://codesandbox.io/s/cstools411-eu7wt

You'll want to note:

const imageId =
  "dicomweb:https://www.mynetcorewebsite.com/?ImageId=01b1755e-33d1-4b24-b9af-a4a019689d5f&FrameIndex=0";
cornerstone.loadImage(imageId).then(function(image) {
  cornerstone.displayImage(element, image);
});

dicomweb: tells cornerstone which image loader to use. We call it a "scheme".

Everything after the scheme is used by the registered image loader to request, parse, and return a "cornerstone image object". In the case of the cornerstone-wado-image-loader, this means that the specified URL should return a DICOM file.

Russian

Вот пример общей настройки:

https://codesandbox.io/s/cstools411-eu7wt

Вы хотите отметить:

const imageId =
  "dicomweb:https://www.mynetcorewebsite.com/?ImageId=01b1755e-33d1-4b24-b9af-a4a019689d5f&FrameIndex=0";
cornerstone.loadImage(imageId).then(function(image) {
  cornerstone.displayImage(element, image);
});

dicomweb: указывает краеугольный камень, какой загрузчик изображений использовать. Мы называем это «схемой».

Все, что находится после схемы, используется зарегистрированным загрузчиком изображений для запроса, анализа и возврата «краеугольного объекта изображения». В случае cornerstone-wado-image-loader это означает, что указанный URL-адрес должен возвращать файл DICOM.

alarihwertbars commented 4 years ago

const imageId = " dicomweb:https://www.mynetcorewebsite.com/?ImageId=01b1755e-33d1-4b24-b9af-a4a019689d5f&FrameIndex=0"; в данной строке записан путь к файлу. Мой файл в проекте лежит по виртуальному пути "\Image\1.dcm", вопрос: Как применить этот путь к вашей схеме используя виртуальный путь а не физический? Папка Image лежит в корне сайта. Пробовал вот так: dicomweb:/Image/1.dcm&ImageType=DicomImage&FrameIndex=0 выдает ошибку 404 Я так понимаю в Вашем примере ImageId подразумевает хранение снимка в базе данных, но в моем случае необходимо хранить до 1000 снимков в серии, и таких серий может быть очень много и на мой взгляд это не рационально хранить в базе данных. По этому они лежат у меня по папкам на сервере и у каждой конечной папки есть свой виртуальный путь. Или лучше хранить все таки в базе данных?

dannyrb commented 4 years ago

Either is fine. So long as you can provide a URL that consistently returns a DICOM instance/file. That can be through serving static files with routes that match their location (in IIS, you would need to add support for .dcm being served), or through an API endpoint that responds with the correct file based on some parameters.

Либо в порядке. Пока вы можете предоставить URL, который последовательно возвращает экземпляр / файл DICOM. Это может быть связано с обслуживанием статических файлов с маршрутами, которые соответствуют их расположению (в IIS вам необходимо добавить поддержку обслуживаемого .dcm), или через конечную точку API, которая отвечает правильным файлом на основе некоторых параметров.

alarihwertbars commented 4 years ago

И то и другое прекрасно. Если вы можете предоставить URL-адрес, который последовательно возвращает экземпляр/файл DICOM. Это может быть сделано путем предоставления статических файлов с маршрутами, соответствующими их местоположению (в IIS вам потребуется добавить поддержку .DCM обслуживается), или через конечную точку API, которая отвечает с правильным файлом на основе некоторых параметров.

Либо в порядке. Пока вы можете предоставить URL, который последовательно возвращает экземпляр / файл DICOM. Это может быть связано с обслуживанием статических файлов с маршрутами, которые соответствуют их расположению (в IIS вам необходимо добавить поддержку обслуживаемого .dcm), или через конечную точку API, которая отвечает правильным файлом на основе некоторых параметров.

Это я понимаю и в IIS добавил поддержку, но как мне прописать путь, ведь у меня путь виртуальный, а у Вас необходимо прописать ссылку? Так, если я пишу const imageId = "dicomweb:/Image/1.dcm"; то браузер выдает что: Страница localhost не найдена Не найдена страница для веб-адреса https://localhost:44318/Image/1.dcm HTTP ERROR 404 так как такой страницы и в правду нет, а есть путь. Сейчас, в моем приложении, я использую вместо .dcm переведенное в другой формат изображение: <img id="0" name="imgScrin" src="/Images/1/2020-02-14/IMG-0001-00030.jpg" style="width:100%"> <img id="1" name="imgScrin" src="/Images/1/2020-02-14/IMG-0001-00031.jpg" style="width:100%"> где ID задается динамично и не имеет отношения к Базе Данных

dannyrb commented 4 years ago

I'm sorry but IIS/.NET Server support is outside the scope of what we provide. You may want to try StackOverflow if you're having issues returning a static .dcm file for a given route/url.

Извините, но поддержка IIS / .NET Server выходит за рамки того, что мы предоставляем. Возможно, вы захотите попробовать StackOverflow, если у вас возникли проблемы с возвратом статического файла .dcm для данного маршрута / URL.