Содержание - Обзор - Использование инструментов Dcm4che для Genozip-сжатых геномных файлов - pdf2dcm — инкапсуляция Genozip-сжатых геномных файлов в DICOM-объекты - stowrs — отправка инкапсулированных Genozip-сжатых DICOM-объектов на сервер архива - Использование инструмента stowrs с незащищённым архивом - Отправка Genozip-файла как Bulk Data в незащищённый архив - Отправка Genozip-файла как DICOM-данных в незащищённый архив - Проверка сохранённых Genozip-файлов в незащищённом архиве - Использование инструмента stowrs с защищённым архивом - Отправка Genozip-файла как Bulk Data в защищённый архив - Отправка Genozip-файла как DICOM-данных в защищённый архив - Проверка сохранённых Genozip-файлов в защищённом архиве - wadors — получение Genozip-сжатых геномных файлов - dcm2pdf — деинкапсуляция DICOM-объектов в Genozip-сжатые геномные файлы
Инструментарий Dcm4che предоставляет утилиты для работы с Genozip-сжатыми геномными файлами и их сохранения в архиве. - Инструмент pdf2dcm для инкапсуляции Genozip-сжатых геномных файлов в DICOM-объекты. - Инструмент dcm2pdf для деинкапсуляции DICOM-объектов в Genozip-сжатые геномные файлы. - Инструмент stowrs для инкапсуляции Genozip-сжатых геномных файлов в DICOM-объекты и их сохранения на сервере. - Инструмент wadors для получения Genozip-сжатых геномных файлов с сервера как DICOM-объектов или как Bulk Data.
Genozip-сжатые геномные файлы рассматриваются как Bulk Data, поэтому их необходимо корректно инкапсулировать/деинкапсулировать в/из DICOM-объекты перед сохранением в архив или после извлечения из архива.
В следующих разделах кратко разъясняется, как работать с такими файлами с помощью перечисленных инструментов dcm4che.
pdf2dcm -m PatientID=GZ-PID -m PatientName=GZPatient -f metadata.xml --contentType application/vnd.genozip genozipFile.genozip genozipObject.dcm
Инкапсулирует Genozip-файл, сначала формируя метаданные из etc/pdf2dcm/encapsulatedGenozipMetadata.xml (присутствующего
в составе инструментария), а затем добавляя DICOM-атрибуты из указанного пользователем metadata.xml, а также заданные
через -m, в инкапсулированный DICOM-объект.
Дополнительно, content type файла, возвращаемый системой, игнорируется, и вместо него учитывается указанный
пользователем content type для корректной инкапсуляции файла.
Любой сервер, поддерживающий Store Instances over Web (транзакция STOW веб-сервисов DICOM), может использоваться в приведённых ниже примерах. В примере ниже используется сервер STOW-RS архива Dcm4chee Archive v5.x.
Dcm4chee Archive v5.x может быть установлен как - Незащищённый архив - Защищённый архив
Если он установлен как защищённый архив, access token из Keycloak следует передавать с помощью инструмента stowrs. Ниже приведены примеры использования stowrs для отправки genozip-файлов как для незащищённой, так и для защищённой версий архива.
Инструмент stowrs позволяет отправить genozip-файл напрямую как bulkdata в архив. Кроме того, можно сначала инкапсулировать genozip-файл в DICOM-файл, как показано для pdf2dcm выше, а затем с помощью stowrs отправить инкапсулированный DICOM-файл на сервер архива. Ниже приведены примеры использования stowrs как для Genozip-файла в виде Bulk Data, так и для инкапсулированных DICOM-данных.
stowrs -m PatientID=GenozipPID2 -m PatientName=GenozipPatient2 --contentType application/vnd.genozip --url http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies amy91_S44.genome.vcf.genozip
Scanning files to send
12:44:51.424 INFO - Creating static metadata. Set defaults, if essential attributes are not present.
12:44:51.492 INFO - Supplementing file amy91_S44.genome.vcf.genozip specific metadata.
12:44:51.761 INFO - > Metadata Content Type: application/dicom+xml
12:44:51.762 DEBUG - Metadata being sent is : <?xml version="1.0" encoding="UTF-8"?>
<NativeDicomModel xml:space="preserve">
<DicomAttribute keyword="SOPClassUID" tag="00080016" vr="UI">
<Value number="1">1.2.40.0.13.1.5.1.4.1.1.104.1</Value>
</DicomAttribute>
<DicomAttribute keyword="SOPInstanceUID" tag="00080018" vr="UI">
<Value number="1">2.25.186551570298816588499500709614053149408</Value>
</DicomAttribute>
<DicomAttribute keyword="StudyDate" tag="00080020" vr="DA"/>
<DicomAttribute keyword="ContentDate" tag="00080023" vr="DA"/>
<DicomAttribute keyword="AcquisitionDateTime" tag="0008002A" vr="DT"/>
<DicomAttribute keyword="StudyTime" tag="00080030" vr="TM"/>
<DicomAttribute keyword="ContentTime" tag="00080033" vr="TM"/>
<DicomAttribute keyword="AccessionNumber" tag="00080050" vr="SH"/>
<DicomAttribute keyword="Modality" tag="00080060" vr="CS">
<Value number="1">DNA</Value>
</DicomAttribute>
<DicomAttribute keyword="Manufacturer" tag="00080070" vr="LO">
<Value number="1">UNKNOWN</Value>
</DicomAttribute>
<DicomAttribute keyword="ReferringPhysicianName" tag="00080090" vr="PN"/>
<DicomAttribute keyword="ManufacturerModelName" tag="00081090" vr="LO">
<Value number="1">UNKNOWN</Value>
</DicomAttribute>
<DicomAttribute keyword="PatientName" tag="00100010" vr="PN">
<PersonName number="1">
<Alphabetic>
<FamilyName>GenozipPatient2</FamilyName>
</Alphabetic>
</PersonName>
</DicomAttribute>
<DicomAttribute keyword="PatientID" tag="00100020" vr="LO">
<Value number="1">GenozipPID2</Value>
</DicomAttribute>
<DicomAttribute keyword="PatientBirthDate" tag="00100030" vr="DA"/>
<DicomAttribute keyword="PatientSex" tag="00100040" vr="CS"/>
<DicomAttribute keyword="DeviceSerialNumber" tag="00181000" vr="LO">
<Value number="1">UNKNOWN</Value>
</DicomAttribute>
<DicomAttribute keyword="SoftwareVersions" tag="00181020" vr="LO">
<Value number="1">UNKNOWN</Value>
</DicomAttribute>
<DicomAttribute keyword="StudyInstanceUID" tag="0020000D" vr="UI">
<Value number="1">2.25.337043629461919538245638433579886581471</Value>
</DicomAttribute>
<DicomAttribute keyword="SeriesInstanceUID" tag="0020000E" vr="UI">
<Value number="1">2.25.143109697747059420524831034753236954806</Value>
</DicomAttribute>
<DicomAttribute keyword="StudyID" tag="00200010" vr="SH"/>
<DicomAttribute keyword="SeriesNumber" tag="00200011" vr="IS">
<Value number="1">1</Value>
</DicomAttribute>
<DicomAttribute keyword="InstanceNumber" tag="00200013" vr="IS">
<Value number="1">1</Value>
</DicomAttribute>
<DicomAttribute keyword="EncapsulatedDocument" tag="00420011" vr="OB">
<BulkData uri="bulk2.25.97498019809261660606648157906773491617"/>
</DicomAttribute>
<DicomAttribute keyword="MIMETypeOfEncapsulatedDocument" tag="00420012" vr="LO">
<Value number="1">application/vnd.genozip</Value>
</DicomAttribute>
</NativeDicomModel>
12:44:51.762 INFO - > Bulkdata Content Type: application/vnd.genozip
..
..
Connected to http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies in 26ms
12:44:52.835 INFO - > POST http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies
12:44:52.836 INFO - > Accept : application/dicom+xml
12:44:52.836 INFO - > Content-Type : multipart/related; type="application/dicom+xml"; boundary=myboundary
12:44:58.743 INFO - < HTTP/1.1 Response: 200 OK
12:44:58.743 INFO - < Transfer-Encoding : chunked
12:44:58.743 INFO - < Access-Control-Expose-Headers : content-type, warning
12:44:58.743 INFO - < Access-Control-Allow-Origin : *
12:44:58.743 INFO - < Access-Control-Allow-Methods : GET, POST, PUT, DELETE, OPTIONS, HEAD
12:44:58.743 INFO - < Access-Control-Allow-Credentials : true
12:44:58.743 INFO - < Connection : keep-alive
12:44:58.743 INFO - < Date : Thu, 30 Jun 2022 10:44:58 GMT
12:44:58.743 INFO - < Access-Control-Allow-Headers : origin, content-type, accept, authorization
12:44:58.743 INFO - < Content-Type : application/dicom+xml
12:44:58.743 INFO - < Response Content:
12:44:58.751 DEBUG - <?xml version="1.0" encoding="UTF-8"?>
<NativeDicomModel xml:space="preserve">
<DicomAttribute keyword="RetrieveURL" tag="00081190" vr="UR">
<Value number="1">http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies/2.25.337043629461919538245638433579886581471</Value>
</DicomAttribute>
<DicomAttribute keyword="ReferencedSOPSequence" tag="00081199" vr="SQ">
<Item number="1">
<DicomAttribute keyword="ReferencedSOPClassUID" tag="00081150" vr="UI">
<Value number="1">1.2.40.0.13.1.5.1.4.1.1.104.1</Value>
</DicomAttribute>
<DicomAttribute keyword="ReferencedSOPInstanceUID" tag="00081155" vr="UI">
<Value number="1">2.25.186551570298816588499500709614053149408</Value>
</DicomAttribute>
<DicomAttribute keyword="RetrieveURL" tag="00081190" vr="UR">
<Value number="1">http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies/2.25.337043629461919538245638433579886581471/series/2.25.143109697747059420524831034753236954806/instances/2.25.186551570298816588499500709614053149408</Value>
</DicomAttribute>
</Item>
</DicomAttribute>
</NativeDicomModel>
Sent 1 objects (=51.242MB) in 5.919s (=8.657MB/s) in this http request and TCP connection
Примечание: - Замените host, port и AET значениями, соответствующими вашему окружению, где установлен сервер архива.
stowrs --url http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies amy91_S44.genome.vcf.genozip.dcm
Scanning files to send
..
..
Connected to http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies in 52ms
12:44:11.670 INFO - > POST http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies
12:44:11.674 INFO - > Accept : application/dicom+xml
12:44:11.674 INFO - > Content-Type : multipart/related; type="application/dicom"; boundary=myboundary
12:44:17.871 INFO - < HTTP/1.1 Response: 200 OK
12:44:17.871 INFO - < Transfer-Encoding : chunked
12:44:17.871 INFO - < Access-Control-Expose-Headers : content-type, warning
12:44:17.871 INFO - < Access-Control-Allow-Origin : *
12:44:17.871 INFO - < Access-Control-Allow-Methods : GET, POST, PUT, DELETE, OPTIONS, HEAD
12:44:17.871 INFO - < Access-Control-Allow-Credentials : true
12:44:17.871 INFO - < Connection : keep-alive
12:44:17.871 INFO - < Date : Thu, 30 Jun 2022 10:44:17 GMT
12:44:17.871 INFO - < Access-Control-Allow-Headers : origin, content-type, accept, authorization
12:44:17.871 INFO - < Content-Type : application/dicom+xml
12:44:17.871 INFO - < Response Content:
12:44:17.879 DEBUG - <?xml version="1.0" encoding="UTF-8"?>
<NativeDicomModel xml:space="preserve">
<DicomAttribute keyword="RetrieveURL" tag="00081190" vr="UR">
<Value number="1">http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies/2.25.168898792176952753116834034782753613281</Value>
</DicomAttribute>
<DicomAttribute keyword="ReferencedSOPSequence" tag="00081199" vr="SQ">
<Item number="1">
<DicomAttribute keyword="ReferencedSOPClassUID" tag="00081150" vr="UI">
<Value number="1">1.2.40.0.13.1.5.1.4.1.1.104.1</Value>
</DicomAttribute>
<DicomAttribute keyword="ReferencedSOPInstanceUID" tag="00081155" vr="UI">
<Value number="1">2.25.4303523304639906332792792886639834811</Value>
</DicomAttribute>
<DicomAttribute keyword="RetrieveURL" tag="00081190" vr="UR">
<Value number="1">http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies/2.25.168898792176952753116834034782753613281/series/2.25.111667637341393540214487427582757227788/instances/2.25.4303523304639906332792792886639834811</Value>
</DicomAttribute>
</Item>
</DicomAttribute>
</NativeDicomModel>
Sent 1 objects (=51.243MB) in 6.214s (=8.246MB/s) in this http request and TCP connection
Примечание: - Замените host, port и AET значениями, соответствующими вашему окружению, где установлен сервер архива.

curl -k --data "grant_type=client_credentials&client_id=curl&client_secret=B7EDDSpG8UNRxX8wRV6sJ5sREEyKmVxu" https://vrinda-pc:8843/realms/dcm4che/protocol/openid-connect/token
{
"access_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJVRU5hSFNFSzlBSG1DSDNZbnFFUHhiY2RtbDk4cGNpWlZqUzlITmtQRXVNIn0.eyJleHAiOjE2NTY1ODM1NTgsImlhdCI6MTY1NjU4MzI1OCwianRpIjoiZTRmYzVjZjAtYjk5My00MWVlLTkxM2QtZDkwZjRhMjJiMjBjIiwiaXNzIjoiaHR0cHM6Ly92cmluZGEtcGM6ODg0My9yZWFsbXMvZGNtNGNoZSIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJhZTlhMjExMC0zNGEyLTQyNDgtYThiZi1kM2UwMWYwNWQwYjQiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJjdXJsIiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsImRlZmF1bHQtcm9sZXMtZGNtNGNoZSIsInVtYV9hdXRob3JpemF0aW9uIiwidXNlciJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoicHJvZmlsZSBlbWFpbCIsImNsaWVudElkIjoiY3VybCIsImNsaWVudEhvc3QiOiIxOTIuMTY4LjY4LjEwOSIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic2VydmljZS1hY2NvdW50LWN1cmwiLCJjbGllbnRBZGRyZXNzIjoiMTkyLjE2OC42OC4xMDkifQ.DLwJO2-a4GwepT4rG1tIvhQfUxVQuDHBU14-xS4ID-rKdP6MXHnZDQZJtJ_cfU6m_NuX5NPNcq8xKGChlDFh84CHDawlE2THTCmovUNDuOM9z1Itv-9nKPQ2k6GiC0fG2O7tk5PonUkAI-BDUAtaJmI_dC0NGuv4jsykVolHEOLyQBratMww-hM9Jp-R3njr9zSzqCiWhA-yTPe8BUMNljy18zCMLck6LqieqsVo9lN-uQZkixD5y5Zvm9NeRcdIFZNX9iMQVdVmKXYk4Zvs5wzaIKuMVVctgC9EwHqPijkCq0TzfGNvGvtF0KDuo4dhHxwtKi5QhESpEgVo0Cv_VQ",
"expires_in":300,
"refresh_expires_in":0,
"token_type":"Bearer",
"not-before-policy":0,
"scope":"profile email"
}
Примечание:
- Замените host, port и client ID / client secret значениями, соответствующими вашему окружению, где установлен сервер Keycloak.
- https://<keycloak-host>:<keycloak-https-port>/realms/dcm4che/protocol/openid-connect/token применимо только для
Keycloak v18.0+ и если используется значение по умолчанию KC_HTTP_RELATIVE_PATH.
- Если используются более ранние версии Keycloak либо если KC_HTTP_RELATIVE_PATH
установлен в /auth для Keycloak v18.0+, используйте https://<keycloak-host>:<keycloak-https-port>/auth/realms/dcm4che/protocol/openid-connect/token.
stowrs --bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJVRU5hSFNFSzlBSG1DSDNZbnFFUHhiY2RtbDk4cGNpWlZqUzlITmtQRXVNIn0.eyJleHAiOjE2NTY1ODM1NTgsImlhdCI6MTY1NjU4MzI1OCwianRpIjoiZTRmYzVjZjAtYjk5My00MWVlLTkxM2QtZDkwZjRhMjJiMjBjIiwiaXNzIjoiaHR0cHM6Ly92cmluZGEtcGM6ODg0My9yZWFsbXMvZGNtNGNoZSIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJhZTlhMjExMC0zNGEyLTQyNDgtYThiZi1kM2UwMWYwNWQwYjQiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJjdXJsIiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsImRlZmF1bHQtcm9sZXMtZGNtNGNoZSIsInVtYV9hdXRob3JpemF0aW9uIiwidXNlciJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoicHJvZmlsZSBlbWFpbCIsImNsaWVudElkIjoiY3VybCIsImNsaWVudEhvc3QiOiIxOTIuMTY4LjY4LjEwOSIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic2VydmljZS1hY2NvdW50LWN1cmwiLCJjbGllbnRBZGRyZXNzIjoiMTkyLjE2OC42OC4xMDkifQ.DLwJO2-a4GwepT4rG1tIvhQfUxVQuDHBU14-xS4ID-rKdP6MXHnZDQZJtJ_cfU6m_NuX5NPNcq8xKGChlDFh84CHDawlE2THTCmovUNDuOM9z1Itv-9nKPQ2k6GiC0fG2O7tk5PonUkAI-BDUAtaJmI_dC0NGuv4jsykVolHEOLyQBratMww-hM9Jp-R3njr9zSzqCiWhA-yTPe8BUMNljy18zCMLck6LqieqsVo9lN-uQZkixD5y5Zvm9NeRcdIFZNX9iMQVdVmKXYk4Zvs5wzaIKuMVVctgC9EwHqPijkCq0TzfGNvGvtF0KDuo4dhHxwtKi5QhESpEgVo0Cv_VQ --contentType application/vnd.genozip --url http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies amy91_S44.genome.vcf.genozip
Scanning files to send
12:01:05.141 INFO - Creating static metadata. Set defaults, if essential attributes are not present.
12:01:05.198 INFO - Supplementing file amy91_S44.genome.vcf.genozip specific metadata.
12:01:05.327 INFO - > Metadata Content Type: application/dicom+xml
12:01:05.327 DEBUG - Metadata being sent is : <?xml version="1.0" encoding="UTF-8"?>
<NativeDicomModel xml:space="preserve">
<DicomAttribute keyword="SOPClassUID" tag="00080016" vr="UI">
<Value number="1">1.2.40.0.13.1.5.1.4.1.1.104.1</Value>
</DicomAttribute>
<DicomAttribute keyword="SOPInstanceUID" tag="00080018" vr="UI">
<Value number="1">2.25.92613700473460038211981476945342707092</Value>
</DicomAttribute>
<DicomAttribute keyword="StudyDate" tag="00080020" vr="DA"/>
<DicomAttribute keyword="ContentDate" tag="00080023" vr="DA"/>
<DicomAttribute keyword="AcquisitionDateTime" tag="0008002A" vr="DT"/>
<DicomAttribute keyword="StudyTime" tag="00080030" vr="TM"/>
<DicomAttribute keyword="ContentTime" tag="00080033" vr="TM"/>
<DicomAttribute keyword="AccessionNumber" tag="00080050" vr="SH"/>
<DicomAttribute keyword="Modality" tag="00080060" vr="CS">
<Value number="1">DNA</Value>
</DicomAttribute>
<DicomAttribute keyword="Manufacturer" tag="00080070" vr="LO">
<Value number="1">UNKNOWN</Value>
</DicomAttribute>
<DicomAttribute keyword="ReferringPhysicianName" tag="00080090" vr="PN"/>
<DicomAttribute keyword="ManufacturerModelName" tag="00081090" vr="LO">
<Value number="1">UNKNOWN</Value>
</DicomAttribute>
<DicomAttribute keyword="PatientName" tag="00100010" vr="PN"/>
<DicomAttribute keyword="PatientID" tag="00100020" vr="LO"/>
<DicomAttribute keyword="PatientBirthDate" tag="00100030" vr="DA"/>
<DicomAttribute keyword="PatientSex" tag="00100040" vr="CS"/>
<DicomAttribute keyword="DeviceSerialNumber" tag="00181000" vr="LO">
<Value number="1">UNKNOWN</Value>
</DicomAttribute>
<DicomAttribute keyword="SoftwareVersions" tag="00181020" vr="LO">
<Value number="1">UNKNOWN</Value>
</DicomAttribute>
<DicomAttribute keyword="StudyInstanceUID" tag="0020000D" vr="UI">
<Value number="1">2.25.230327736740213438926822342910137667763</Value>
</DicomAttribute>
<DicomAttribute keyword="SeriesInstanceUID" tag="0020000E" vr="UI">
<Value number="1">2.25.56017977862437861633456410993405056719</Value>
</DicomAttribute>
<DicomAttribute keyword="StudyID" tag="00200010" vr="SH"/>
<DicomAttribute keyword="SeriesNumber" tag="00200011" vr="IS">
<Value number="1">1</Value>
</DicomAttribute>
<DicomAttribute keyword="InstanceNumber" tag="00200013" vr="IS">
<Value number="1">1</Value>
</DicomAttribute>
<DicomAttribute keyword="EncapsulatedDocument" tag="00420011" vr="OB">
<BulkData uri="bulk2.25.59412384040213237596386116571062912562"/>
</DicomAttribute>
<DicomAttribute keyword="MIMETypeOfEncapsulatedDocument" tag="00420012" vr="LO">
<Value number="1">application/vnd.genozip</Value>
</DicomAttribute>
</NativeDicomModel>
12:01:05.328 INFO - > Bulkdata Content Type: application/vnd.genozip
..
..
Connected to http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies in 22ms
12:01:05.819 INFO - > POST http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies
12:01:05.821 INFO - > Accept : application/dicom+xml
12:01:05.822 INFO - > Content-Type : multipart/related; type="application/dicom+xml"; boundary=myboundary
12:01:14.732 INFO - < HTTP/1.1 Response: 200 OK
12:01:14.733 INFO - < Transfer-Encoding : chunked
12:01:14.733 INFO - < Access-Control-Expose-Headers : content-type, warning
12:01:14.733 INFO - < Access-Control-Allow-Origin : *
12:01:14.733 INFO - < Access-Control-Allow-Methods : GET, POST, PUT, DELETE, OPTIONS, HEAD
12:01:14.733 INFO - < Access-Control-Allow-Credentials : true
12:01:14.733 INFO - < Connection : keep-alive
12:01:14.733 INFO - < Date : Thu, 30 Jun 2022 10:01:14 GMT
12:01:14.733 INFO - < Access-Control-Allow-Headers : origin, content-type, accept, authorization
12:01:14.733 INFO - < Content-Type : application/dicom+xml
12:01:14.733 INFO - < Response Content:
12:01:14.758 DEBUG - <?xml version="1.0" encoding="UTF-8"?>
<NativeDicomModel xml:space="preserve">
<DicomAttribute keyword="RetrieveURL" tag="00081190" vr="UR">
<Value number="1">http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies/2.25.230327736740213438926822342910137667763</Value>
</DicomAttribute>
<DicomAttribute keyword="ReferencedSOPSequence" tag="00081199" vr="SQ">
<Item number="1">
<DicomAttribute keyword="ReferencedSOPClassUID" tag="00081150" vr="UI">
<Value number="1">1.2.40.0.13.1.5.1.4.1.1.104.1</Value>
</DicomAttribute>
<DicomAttribute keyword="ReferencedSOPInstanceUID" tag="00081155" vr="UI">
<Value number="1">2.25.92613700473460038211981476945342707092</Value>
</DicomAttribute>
<DicomAttribute keyword="RetrieveURL" tag="00081190" vr="UR">
<Value number="1">http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies/2.25.230327736740213438926822342910137667763/series/2.25.56017977862437861633456410993405056719/instances/2.25.92613700473460038211981476945342707092</Value>
</DicomAttribute>
</Item>
</DicomAttribute>
</NativeDicomModel>
Sent 1 objects (=51.242MB) in 8.943s (=5.73MB/s) in this http request and TCP connection
Примечание: - Замените host, port и AET значениями, соответствующими вашему окружению, где установлен сервер архива. - Замените bearer token на тот, что получен из вашего окружения, где установлен сервер Keycloak.
stowrs --bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJVRU5hSFNFSzlBSG1DSDNZbnFFUHhiY2RtbDk4cGNpWlZqUzlITmtQRXVNIn0.eyJleHAiOjE2NTY1ODM1NTgsImlhdCI6MTY1NjU4MzI1OCwianRpIjoiZTRmYzVjZjAtYjk5My00MWVlLTkxM2QtZDkwZjRhMjJiMjBjIiwiaXNzIjoiaHR0cHM6Ly92cmluZGEtcGM6ODg0My9yZWFsbXMvZGNtNGNoZSIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJhZTlhMjExMC0zNGEyLTQyNDgtYThiZi1kM2UwMWYwNWQwYjQiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJjdXJsIiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsImRlZmF1bHQtcm9sZXMtZGNtNGNoZSIsInVtYV9hdXRob3JpemF0aW9uIiwidXNlciJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoicHJvZmlsZSBlbWFpbCIsImNsaWVudElkIjoiY3VybCIsImNsaWVudEhvc3QiOiIxOTIuMTY4LjY4LjEwOSIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic2VydmljZS1hY2NvdW50LWN1cmwiLCJjbGllbnRBZGRyZXNzIjoiMTkyLjE2OC42OC4xMDkifQ.DLwJO2-a4GwepT4rG1tIvhQfUxVQuDHBU14-xS4ID-rKdP6MXHnZDQZJtJ_cfU6m_NuX5NPNcq8xKGChlDFh84CHDawlE2THTCmovUNDuOM9z1Itv-9nKPQ2k6GiC0fG2O7tk5PonUkAI-BDUAtaJmI_dC0NGuv4jsykVolHEOLyQBratMww-hM9Jp-R3njr9zSzqCiWhA-yTPe8BUMNljy18zCMLck6LqieqsVo9lN-uQZkixD5y5Zvm9NeRcdIFZNX9iMQVdVmKXYk4Zvs5wzaIKuMVVctgC9EwHqPijkCq0TzfGNvGvtF0KDuo4dhHxwtKi5QhESpEgVo0Cv_VQ --url http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies amy91_S44.genome.vcf.genozip.dcm
Scanning files to send
..
..
Connected to http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies in 26ms
12:01:30.853 INFO - > POST http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies
12:01:30.857 INFO - > Accept : application/dicom+xml
12:01:30.857 INFO - > Content-Type : multipart/related; type="application/dicom"; boundary=myboundary
12:01:39.674 INFO - < HTTP/1.1 Response: 200 OK
12:01:39.674 INFO - < Transfer-Encoding : chunked
12:01:39.674 INFO - < Access-Control-Expose-Headers : content-type, warning
12:01:39.675 INFO - < Access-Control-Allow-Origin : *
12:01:39.675 INFO - < Access-Control-Allow-Methods : GET, POST, PUT, DELETE, OPTIONS, HEAD
12:01:39.675 INFO - < Access-Control-Allow-Credentials : true
12:01:39.675 INFO - < Connection : keep-alive
12:01:39.675 INFO - < Date : Thu, 30 Jun 2022 10:01:39 GMT
12:01:39.675 INFO - < Access-Control-Allow-Headers : origin, content-type, accept, authorization
12:01:39.675 INFO - < Content-Type : application/dicom+xml
12:01:39.675 INFO - < Response Content:
12:01:39.676 DEBUG - <?xml version="1.0" encoding="UTF-8"?>
<NativeDicomModel xml:space="preserve">
<DicomAttribute keyword="RetrieveURL" tag="00081190" vr="UR">
<Value number="1">http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies/2.25.168898792176952753116834034782753613281</Value>
</DicomAttribute>
<DicomAttribute keyword="ReferencedSOPSequence" tag="00081199" vr="SQ">
<Item number="1">
<DicomAttribute keyword="ReferencedSOPClassUID" tag="00081150" vr="UI">
<Value number="1">1.2.40.0.13.1.5.1.4.1.1.104.1</Value>
</DicomAttribute>
<DicomAttribute keyword="ReferencedSOPInstanceUID" tag="00081155" vr="UI">
<Value number="1">2.25.4303523304639906332792792886639834811</Value>
</DicomAttribute>
<DicomAttribute keyword="RetrieveURL" tag="00081190" vr="UR">
<Value number="1">http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies/2.25.168898792176952753116834034782753613281/series/2.25.111667637341393540214487427582757227788/instances/2.25.4303523304639906332792792886639834811</Value>
</DicomAttribute>
</Item>
</DicomAttribute>
</NativeDicomModel>
Sent 1 objects (=51.243MB) in 8.829s (=5.804MB/s) in this http request and TCP connection
Примечание: - Замените host, port и AET значениями, соответствующими вашему окружению, где установлен сервер архива. - Замените bearer token на тот, что получен из вашего окружения, где установлен сервер Keycloak.

Любой сервер, поддерживающий транзакции Retrieve Capabilities (WADO) веб-сервисов DICOM, может использоваться в приведённых ниже примерах. В примерах ниже используется сервер WADO-RS архива Dcm4chee Archive v5.x.
Примечание: для простоты тестирования и документирования используется незащищённая версия архива Dcm4chee archive v5.x.
В приведённых ниже примерах можно также использовать защищённый архив,
передавая --bearer <token> аналогично примерам в тестах инструмента stowrs.
wadors -a "multipart/related;type=application/vnd.genozip" http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies/2.25.337043629461919538245638433579886581471
12:56:09.789 INFO - > GET http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies/2.25.337043629461919538245638433579886581471?accept=multipart/related;type=application/vnd.genozip
12:56:09.896 INFO - < HTTP/1.1 Response: 200 OK
12:56:09.896 INFO - < Transfer-Encoding : chunked
12:56:09.896 INFO - < Access-Control-Expose-Headers : content-type, warning
12:56:09.897 INFO - < ETag : "-1271477416"
12:56:09.897 INFO - < Access-Control-Allow-Origin : *
12:56:09.897 INFO - < Access-Control-Allow-Methods : GET, POST, PUT, DELETE, OPTIONS, HEAD
12:56:09.897 INFO - < Access-Control-Allow-Credentials : true
12:56:09.897 INFO - < Connection : keep-alive
12:56:09.897 INFO - < Last-Modified : Thu, 30 Jun 2022 10:44:58 GMT
12:56:09.897 INFO - < Date : Thu, 30 Jun 2022 10:56:09 GMT
12:56:09.897 INFO - < Access-Control-Allow-Headers : origin, content-type, accept, authorization
12:56:09.897 INFO - < Content-Type : multipart/related;start="<b21cc4f3-b3d8-48c2-ae58-cc07e20a5377@resteasy-multipart>";type="application/vnd.genozip"; boundary=ede12338-acc1-4ebb-8081-14948d513e83
12:56:09.905 INFO - Extract Part #1 2.25.337043629461919538245638433579886581471-001.vnd.genozip
{content-id=[<b21cc4f3-b3d8-48c2-ae58-cc07e20a5377@resteasy-multipart>], content-location=[http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies/2.25.337043629461919538245638433579886581471/series/2.25.143109697747059420524831034753236954806/instances/2.25.186551570298816588499500709614053149408], content-type=[application/vnd.genozip]}

Подсказка: получение Genozip-файла как DICOM-данных можно использовать далее с инструментом dcm2pdf (как показано ниже) для деинкапсуляции DICOM-объектов в Genozip-сжатые геномные файлы.
wadors http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies/2.25.33704362946191953824563843357988658147113:17:41.547 INFO - > GET http://vrinda-pc:8880/dcm4chee-arc/aets/DCM4CHEE/rs/studies/2.25.337043629461919538245638433579886581471?accept=*
13:17:41.745 INFO - < HTTP/1.1 Response: 200 OK
13:17:41.745 INFO - < Transfer-Encoding : chunked
13:17:41.745 INFO - < Access-Control-Expose-Headers : content-type, warning
13:17:41.746 INFO - < ETag : "-1271477407"
13:17:41.746 INFO - < Access-Control-Allow-Origin : *
13:17:41.746 INFO - < Access-Control-Allow-Methods : GET, POST, PUT, DELETE, OPTIONS, HEAD
13:17:41.746 INFO - < Access-Control-Allow-Credentials : true
13:17:41.746 INFO - < Connection : keep-alive
13:17:41.746 INFO - < Last-Modified : Thu, 30 Jun 2022 10:44:58 GMT
13:17:41.746 INFO - < Date : Thu, 30 Jun 2022 11:17:41 GMT
13:17:41.747 INFO - < Access-Control-Allow-Headers : origin, content-type, accept, authorization
13:17:41.747 INFO - < Content-Type : multipart/related;start="<47b70549-d7d2-49fe-9221-146977679410@resteasy-multipart>";transfer-syntax=1.2.840.10008.1.2;type="application/dicom"; boundary=fded1605-d7e3-4006-8805-c82d8785e0ff
13:17:41.767 INFO - Extract Part #1 2.25.337043629461919538245638433579886581471-001.dicom
{content-id=[<47b70549-d7d2-49fe-9221-146977679410@resteasy-multipart>], content-type=[application/dicom;transfer-syntax=1.2.840.10008.1.2]}

Используйте Genozip-файл, полученный как DICOM-объект, как показано выше в использовании инструмента wadors, для тестов с инструментом dcm2pdf ниже.
dcm2pdf 2.25.337043629461919538245638433579886581471-001.dicom decapsulate.genozip
2.25.337043629461919538245638433579886581471-001.dicom -> decapsulate.genozip
Деинкапсулирует инкапсулированный Genozip-сжатый геномный DICOM-объект в Genozip-сжатые геномные файлы.
