<?php declare(strict_types = 1); define("BOUNDARY", bin2hex(random_bytes(10))); $filePath = 'test.dcm'; $baseUrl = 'http://127.0.0.1:8080'; $AET = 'TESTAETITLE'; /** * Generate request body for a multipart/related * * @param string $filePath */ function generateMultipartRelatedBody(string $filePath): string { $rn = "\r\n"; $basename = basename($filePath); $body = '--' . BOUNDARY . $rn; $body .= 'Content-Disposition: form-data;name="file";filename="' . $basename . '"' . $rn; $body .= "Content-Type: application/dicom" . $rn . $rn; $body .= file_get_contents($filePath) . $rn; $body .= '--' . BOUNDARY . '--'; return $body; } $ch = curl_init(); curl_setopt_array($ch, array( CURLOPT_HTTPHEADER => array( 'Content-Type: multipart/related;type="application/dicom";boundary="' . BOUNDARY .'"', 'Accept: application/dicom+json', ), CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_URL => $baseUrl . '/dcm4chee-arc/aets/' . $AET . '/rs/studies', CURLOPT_POSTFIELDS => generateMultipartRelatedBody($filePath), )); $result = curl_exec($ch); curl_close($ch); $jsonString = json_encode(json_decode($result), JSON_PRETTY_PRINT); print($jsonString . "\n"); exit(0);