/** * Decode the Presentation Syntax * * @param CDicomStreamReader $stream_reader The stream reader * * @return void */ function decodeItem(CDicomStreamReader $stream_reader) { $this->id = $stream_reader->readUInt8(); $stream_reader->skip(3); $this->abstract_syntax = CDicomPDUItemFactory::decodeItem($stream_reader); $this->transfer_syntaxes = CDicomPDUItemFactory::decodeConsecutiveItemsByType($stream_reader, 0x40); }
/** * Decode the Presentation Syntax * * @param CDicomStreamReader $stream_reader The stream reader * * @return null */ function decodeItem(CDicomStreamReader $stream_reader) { $this->id = $stream_reader->readUInt8(); $stream_reader->skip(1); $this->reason = $stream_reader->readUInt8(); $stream_reader->skip(1); $this->transfer_syntax = CDicomPDUItemFactory::decodeItem($stream_reader); }
/** * Decode the PDU * * @param CDicomStreamReader $stream_reader The stream reader * * @return null */ function decodePDU(CDicomStreamReader $stream_reader) { $stream_reader->skip(1); $this->result = $stream_reader->readUInt8(); $this->source = $stream_reader->readUInt8(); $this->diagnostic = $stream_reader->readUInt8(); }
/** * Decode the User Identity Negociation RQ * * @param CDicomStreamReader $stream_reader The stream reader * * @return null */ function decodeItem(CDicomStreamReader $stream_reader) { $this->user_identity_type = $stream_reader->readUInt8(); $this->positive_response_requested = $stream_reader->readUInt8(); $this->primary_field_length = $stream_reader->readUInt16(); $this->primary_field = $stream_reader->readString($this->primary_field_length); $this->secondary_field_length = $stream_reader->readUInt16(); if ($this->secondary_field_length > 0) { $this->secondary_field = $stream_reader->readString($this->secondary_field_length); } }
/** * Decode the Sop Class Extended Negociation * * @param CDicomStreamReader $stream_reader The stream reader * * @return null */ function decodeItem(CDicomStreamReader $stream_reader) { $this->uid_length = $stream_reader->readUInt16(); $this->sop_class_uid = $stream_reader->readUID($this->uid_length); $this->sca_support = $stream_reader->readUInt8(); $stream_reader->skip(1); $this->sca_digital_signature_support = $stream_reader->readUInt8(); $stream_reader->skip(1); $this->sca_element_coercion = $stream_reader->readUInt8(); $stream_reader->skip(1); }
/** * Read the type of the PDU from the stream * * @param CDicomStreamReader $stream The stream reader * * @return string */ static function readType(CDicomStreamReader $stream) { $tmp = $stream->readUInt8(); $stream->skip(1); return self::getPDUClass($tmp); }
/** * Decode the Implementation Version Name * * @param CDicomStreamReader $stream_reader The stream reader * * @return null */ function decodeItem(CDicomStreamReader $stream_reader) { $this->uid_length = $stream_reader->readUInt16(); $this->sop_class_uid = $stream_reader->readUID($this->uid_length); $this->scu_role = $stream_reader->readUInt8(); $this->scp_role = $stream_reader->readUInt8(); }
/** * Read the type of an item. If a item type has been read but not decoded, it returns this type. * * @param CDicomStreamReader $stream_reader The stream reader * * @return string The name of the item class */ static function readItemType(CDicomStreamReader $stream_reader) { $item_type = null; if (!self::$next_item) { $tmp = $stream_reader->readUInt8(); $stream_reader->skip(1); if (!$tmp) { return false; } $item_type = self::getItemClass($tmp); //$stream_reader->readHexByte()]; } else { $item_type = self::$next_item; self::$next_item = null; } return $item_type; }
/** * Decode the field * * @param CDicomStreamReader $stream_reader The stream reader * * @return null */ function decodeField(CDicomStreamReader $stream_reader) { $this->class_uid_length = $stream_reader->readUInt8(); $this->class_uid = $stream_reader->readUID($this->class_uid_length); }
/** * Decode the PDV * * @param CDicomStreamReader $stream_reader The stream reader * * @return null */ function decode(CDicomStreamReader $stream_reader) { // On fait un stream temp pour le message //$this->length = $stream_reader->readUInt32(); $this->pres_context_id = $stream_reader->readUInt8(); $this->message_control_header = $stream_reader->readUInt8(); $message_length = $this->length - 2; $message_content = $stream_reader->read($message_length); $handle = fopen("php://temp", "w+"); fwrite($handle, $message_content); $message_stream = new CDicomStreamReader($handle); $message_stream->rewind(); $message_stream->setStreamLength($message_length); if (!($this->transfer_syntax = $this->getTransferSyntax())) { /** @todo throw exception **/ } $this->message = CDicomMessageFactory::decodeMessage($message_stream, $this->message_control_header, $this->transfer_syntax); $message_stream->close(); $content = substr($stream_reader->buf, 13) . $message_stream->buf; $this->setBinaryContent($content); }