コード例 #1
0
ファイル: qrscp.py プロジェクト: rickardholmberg/twisteddicom
    def C_MOVE_RQ_received(self, presentation_context_id, move_rq, query):
        log.msg("received %s on presentation context %i" % (move_rq, presentation_context_id))

        log.msg("%s" % query)

        movedest = self.move_destinations.get(move_rq.move_destination)
        if movedest == None:
            log.msg("Unknown move destination AE %s." % (move_rq.move_destination,))
            self.send_DIMSE_command(presentation_context_id, 
                                    dimsemessages.C_MOVE_RSP(status = 0xA801, 
                                                             message_id_being_responded_to = move_rq.message_id,
                                                             affected_sop_class_uid = move_rq.affected_sop_class_uid))
            return
        movedest['called_ae_title'] = move_rq.move_destination

        move_rq.n_total_suboperations = 0
        move_rq.n_complete_suboperations = 0
        move_rq.n_failed_suboperations = 0

        ds_to_send = []
        
        for f in glob.glob(os.path.join(self.folder, "*.dcm*")):
            #print f
            try:
                ds = dicom.read_file(f)
            except dicom.filereader.InvalidDicomError, e:
                log.err(e)
                continue

            is_match, result_ds = match_dataset(query, ds)
            if not is_match:
                continue

            move_rq.n_total_suboperations += 1
            ds_to_send.append(ds)
コード例 #2
0
ファイル: qrscp.py プロジェクト: rickardholmberg/twisteddicom
    def C_FIND_RQ_received(self, presentation_context_id, find_rq, query):
        log.msg("received %s on presentation context %i" % (find_rq, presentation_context_id))

        log.msg("%s" % query)

        level = getattr(query, "QueryRetrieveLevel", "IMAGE")
        level_ids_done = set()
        
        for f in glob.glob(os.path.join(self.folder, "*.dcm*")):
            try:
                ds = dicom.read_file(f)
            except dicom.filereader.InvalidDicomError, e:
                log.err(e)
                continue

            level_id = get_level_identifier(ds, level)
            if level_id != None and level_id in level_ids_done:
                continue
            level_ids_done.add(level_id)

            is_match, result_ds = match_dataset(query, ds)
            if not is_match:
                continue
            self.send_DIMSE_command(presentation_context_id,
                                    dimsemessages.C_FIND_RSP(status = 0xff00,
                                                             message_id_being_responded_to = find_rq.message_id,
                                                             affected_sop_class_uid = find_rq.affected_sop_class_uid,
                                                             data_set_present = True),
                                    result_ds)
コード例 #3
0
ファイル: qrscp.py プロジェクト: hejunru/twisteddicom
    def C_FIND_RQ_received(self, presentation_context_id, find_rq, query):
        log.msg("received %s on presentation context %i" %
                (find_rq, presentation_context_id))

        log.msg("%s" % query)

        level = getattr(query, "QueryRetrieveLevel", "IMAGE")
        level_ids_done = set()

        for f in glob.glob(os.path.join(self.folder, "*.dcm*")):
            try:
                ds = dicom.read_file(f)
            except dicom.filereader.InvalidDicomError, e:
                log.err(e)
                continue

            level_id = get_level_identifier(ds, level)
            if level_id != None and level_id in level_ids_done:
                continue
            level_ids_done.add(level_id)

            is_match, result_ds = match_dataset(query, ds)
            if not is_match:
                continue
            self.send_DIMSE_command(
                presentation_context_id,
                dimsemessages.C_FIND_RSP(
                    status=0xff00,
                    message_id_being_responded_to=find_rq.message_id,
                    affected_sop_class_uid=find_rq.affected_sop_class_uid,
                    data_set_present=True), result_ds)
コード例 #4
0
    def C_FIND_RQ_received(self, presentation_context_id, find_rq, query):
        log.msg("received %s on presentation context %i" % (find_rq, presentation_context_id))

        log.msg("%s" % query)

        for f in glob.glob(os.path.join(self.folder, "*.dcm*")):
            try:
                ds = dicom.read_file(f)
            except dicom.filereader.InvalidDicomError, e:
                log.err(e)
                continue
            
            is_match, result_ds = match_dataset(query, ds)
            if not is_match:
                continue
            self.send_DIMSE_command(presentation_context_id,
                                    dimsemessages.C_FIND_RSP(status = 0xff00,
                                                             message_id_being_responded_to = find_rq.message_id,
                                                             affected_sop_class_uid = find_rq.affected_sop_class_uid,
                                                             data_set_present = True),
                                    result_ds)
コード例 #5
0
ファイル: qrscp.py プロジェクト: hejunru/twisteddicom
    def C_MOVE_RQ_received(self, presentation_context_id, move_rq, query):
        log.msg("received %s on presentation context %i" %
                (move_rq, presentation_context_id))

        log.msg("%s" % query)

        movedest = self.move_destinations.get(move_rq.move_destination)
        if movedest == None:
            log.msg("Unknown move destination AE %s." %
                    (move_rq.move_destination, ))
            self.send_DIMSE_command(
                presentation_context_id,
                dimsemessages.C_MOVE_RSP(
                    status=0xA801,
                    message_id_being_responded_to=move_rq.message_id,
                    affected_sop_class_uid=move_rq.affected_sop_class_uid))
            return
        movedest['called_ae_title'] = move_rq.move_destination

        move_rq.n_total_suboperations = 0
        move_rq.n_complete_suboperations = 0
        move_rq.n_failed_suboperations = 0

        ds_to_send = []

        for f in glob.glob(os.path.join(self.folder, "*.dcm*")):
            #print f
            try:
                ds = dicom.read_file(f)
            except dicom.filereader.InvalidDicomError, e:
                log.err(e)
                continue

            is_match, result_ds = match_dataset(query, ds)
            if not is_match:
                continue

            move_rq.n_total_suboperations += 1
            ds_to_send.append(ds)
コード例 #6
0
    def C_FIND_RQ_received(self, presentation_context_id, find_rq, query):
        log.msg("received %s on presentation context %i" %
                (find_rq, presentation_context_id))

        log.msg("%s" % query)

        for f in glob.glob(os.path.join(self.folder, "*.dcm*")):
            try:
                ds = dicom.read_file(f)
            except dicom.filereader.InvalidDicomError, e:
                log.err(e)
                continue

            is_match, result_ds = match_dataset(query, ds)
            if not is_match:
                continue
            self.send_DIMSE_command(
                presentation_context_id,
                dimsemessages.C_FIND_RSP(
                    status=0xff00,
                    message_id_being_responded_to=find_rq.message_id,
                    affected_sop_class_uid=find_rq.affected_sop_class_uid,
                    data_set_present=True), result_ds)