/**
  * 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);
 }
Ejemplo n.º 6
0
 /**
  * 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);
 }
Ejemplo n.º 10
0
 /**
  * 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);
 }