Можно использовать поддерживаемый архивом RESTful-сервис для сохранения объектов через веб. Это можно сделать одним из следующих способов :
Для загрузки bulkdata (pdf, изображение или видео) это можно сделать на уровне исследования или на уровне MWL. Эту
опцию можно найти, нажав на три вертикальные точки напротив исследования/MWL. Стрелка вверх Upload file позволяет
загрузить bulkdata для этого исследования или MWL.
Для загрузки DICOM-объектов перейдите в More functions и выберите Upload DICOM objects, чтобы выбрать любое
количество DICOM-объектов для загрузки.
Просто используйте инструмент stowrs из библиотеки dcm4che. См. примеры ниже.
stowrs -m PatientName=John^Doe -u http://localhost:8080/dcm4chee-arc/aets/DCM4CHEE/rs/studies img.jpeg
stowrs -t json --xc -m PatientID=P1 -u http://localhost:8080/dcm4chee-arc/aets/DCM4CHEE/rs/studies img1.jpeg img2.jpg img3.jpeg
stowrs -u http://localhost:8080/dcm4chee-arc/aets/DCM4CHEE/rs/studies
object1.dcm object2.dcm
Примечание :
- Несколько DICOM-файлов можно отправить одновременно в одном запросе в архив.
- С указанной опцией -t как json, несколько файлов bulkdata (одного типа файла, т.е. напр. только изображения или только
pdf или только видео) можно отправить одновременно в одном запросе в архив.
- Поддерживаемые расширения bulkdata: pdf, jpg, jpeg, mpg, mpg2 и mpeg.
См. stowrs --help для получения дополнительной информации.
Согласно DICOM Part 18, 10.5 Store Transaction оберните DICOM Part 10 файлы в сообщение MIME Multipart/Related, перед тем как отправить их HTTP POST-запросом, напр. на Linux:
echo -ne "\r\n--myboundary\r\nContent-Type: application/dicom\r\n\r\n" > mime.dicom.head
echo -ne "\r\n--myboundary--" > mime.tail
cat mime.dicom.head dicom-file1.dcm mime.dicom.head dicom-file2.dcm mime.tail > dicom.mime
curl -X POST -H "Content-Type: multipart/related; type=\"application/dicom\"; boundary=myboundary" \
http://localhost:8080/dcm4chee-arc/aets/DCM4CHEE/rs/studies --data-binary @dicom.mime
Для отправки обычных JPEG-изображений необходимо обернуть их вместе с метаданными в формате JSON или XML в сообщение MIME Multipart/Related, напр.:
echo -ne "\r\n--myboundary\r\nContent-Type: application/dicom+json\r\n\r\n" > mime.metadata.head
echo -ne "\r\n--myboundary\r\nContent-Type: image/jpeg\r\nContent-Location: file1.jpg\r\n\r\n" > mime.jpeg1.head
echo -ne "\r\n--myboundary\r\nContent-Type: image/jpeg\r\nContent-Location: file2.jpg\r\n\r\n" > mime.jpeg2.head
echo -ne "\r\n--myboundary--" > mime.tail
cat mime.metadata.head metadata.json mime.jpeg1.head file1.jpg mime.jpeg2.head file2.jpg mime.tail > metadata+jpeg.mime
curl -X POST -H "Content-Type: multipart/related; type=\"application/dicom+json\"; boundary=myboundary" \
http://localhost:8080/dcm4chee-arc/aets/DCM4CHEE/rs/studies --data-binary @metadata+jpeg.mime
[{
"00080016": { "vr": "UI", "Value": [ "1.2.840.10008.5.1.4.1.1.7" ] },
"00080018": { "vr": "UI", "Value": [ "2.25.120844308671949461864937780667935865261" ] },
"00080020": { "vr": "DA" },
"00080030": { "vr": "TM" },
"00080050": { "vr": "SH" },
"00080060": { "vr": "CS", "Value": [ "OT" ] },
"00080064": { "vr": "CS", "Value": [ "WSD" ] },
"00080070": { "vr": "LO" },
"00080090": { "vr": "PN" },
"00100010": { "vr": "PN", "Value": [{ "Alphabetic": "Patient^Name" }]},
"00100020": { "vr": "LO", "Value": [ "PatientID" ] },
"00100030": { "vr": "DA" },
"00100040": { "vr": "CS" },
"0020000D": { "vr": "UI", "Value": [ "2.25.325835831109079562541560856033484422761" ] },
"0020000E": { "vr": "UI", "Value": [ "2.25.152887376887097953030407776906882151652" ] },
"00200010": { "vr": "SH" },
"00200011": { "vr": "IS", "Value": [ 1 ] },
"00200013": { "vr": "IS", "Value": [ 1 ] },
"7FE00010": { "vr": "OB", "BulkDataURI": "file1.jpg" }
},{
"00080016": { "vr": "UI", "Value": [ "1.2.840.10008.5.1.4.1.1.7" ] },
"00080018": { "vr": "UI", "Value": [ "2.25.30207206599873576648053269184806854221" ] },
"00080020": { "vr": "DA" },
"00080030": { "vr": "TM" },
"00080050": { "vr": "SH" },
"00080060": { "vr": "CS", "Value": [ "OT" ] },
"00080064": { "vr": "CS", "Value": [ "WSD" ] },
"00080070": { "vr": "LO" },
"00080090": { "vr": "PN" },
"00100010": { "vr": "PN", "Value": [{ "Alphabetic": "Patient^Name" }]},
"00100020": { "vr": "LO", "Value": [ "PatientID" ] },
"00100030": { "vr": "DA" },
"00100040": { "vr": "CS" },
"0020000D": { "vr": "UI", "Value": [ "2.25.325835831109079562541560856033484422761" ] },
"0020000E": { "vr": "UI", "Value": [ "2.25.152887376887097953030407776906882151652" ] },
"00200010": { "vr": "SH" },
"00200011": { "vr": "IS", "Value": [ 1 ] },
"00200013": { "vr": "IS", "Value": [ 2 ] },
"7FE00010": { "vr": "OB", "BulkDataURI": "file2.jpg" }
}]