AETitle = $AETitle; $this->host = $host; $this->port = $port; $this->wadoProtocol = 'http'; $this->wadoHost = $host; $this->wadoPort = $port; } public function getDicomServer() { $dicomServer = $this->AETitle.'@'.$this->host.':'.$this->port; return $dicomServer; } /** * Force Dicom Q/R execution under a given locale to deal properly with non-ascii characters */ public function getLocale() { return $this->lang.'.'.$this->encoding; } /** * In some environments Wado server runs independently of Dicom server */ public function setWado($wadoProtocol, $wadoHost, $wadoPort, $wadoScript) { $this->wadoProtocol = $wadoProtocol; $this->wadoHost = $wadoHost; $this->wadoPort = $wadoPort; $this->wadoScript = $wadoScript; } public function setWadoScript($wadoScript) { $this->wadoScript = $wadoScript; } public function getUriWado($studyUID, $seriesUID, $objectUID) { // Additional parameters ??? // contentType // transferSyntax (UID) $codeBase = "{$this->wadoProtocol}://{$this->wadoHost}:{$this->wadoPort}/{$this->wadoScript}?"; $queryString = "requestType=WADO&studyUID={$studyUID}&seriesUID={$seriesUID}&objectUID={$objectUID}"; $uriWado = $codeBase.$queryString; return $uriWado; } } // ******* ********* ********* ********* ********* ********* ********* ********* // Specific subclasses for some popular Dicom servers class DCM4CHEE extends PACS { function __construct($AETitle, $host) { $port = '11112'; parent::__construct($AETitle, $host, $port); $this->wadoPort = '8080'; $this->setWadoScript('wado'); } } class CONQUEST extends PACS { function __construct($AETitle, $host, $port) { parent::__construct($AETitle, $host, $port); $this->setWadoScript('cgi-bin/dgate.exe'); } } class CLEARCANVAS extends PACS { function __construct($AETitle, $host, $port) { parent::__construct($AETitle, $host, $port); $this->wadoPort = '1000'; $this->setWadoScript('wado/'.$AETitle); } } // ******* ********* ********* ********* ********* ********* ********* *********