Example #1
0
    def export_image2file(self, aChunkSize=0, filename=None):

        if self._payload[self._idx['size']] == 0:
            return None

        if filename is None:
            suffix = None
            # preserve original filename extension if available
            if self._payload[self._idx['filename']] is not None:
                name, suffix = os.path.splitext(
                    self._payload[self._idx['filename']])
                suffix = suffix.strip()
                if suffix == '':
                    suffix = None
            # get unique filename
            filename = gmTools.get_unique_filename(prefix='gm-tag_image-',
                                                   suffix=suffix)

        success = gmPG2.bytea2file(data_query={
            'cmd':
            'SELECT substring(image from %(start)s for %(size)s) FROM ref.tag_image WHERE pk = %(pk)s',
            'args': {
                'pk': self.pk_obj
            }
        },
                                   filename=filename,
                                   chunk_size=aChunkSize,
                                   data_size=self._payload[self._idx['size']])

        if success:
            return filename

        return None
Example #2
0
	def export_to_file(self, aChunkSize=0, filename=None, directory=None):

		if self._payload[self._idx['pk_doc_obj']] is not None:
			return self.document_part.export_to_file (
				aChunkSize = aChunkSize,
				filename = filename,
				ignore_conversion_problems = True,
				directory = directory
			)

		if filename is None:
			filename = self.get_useful_filename(directory = directory)

		success = gmPG2.bytea2file (
			data_query = {
				'cmd': u'SELECT substring(data from %(start)s for %(size)s) FROM clin.export_item WHERE pk = %(pk)s',
				'args': {'pk': self.pk_obj}
			},
			filename = filename,
			chunk_size = aChunkSize,
			data_size = self._payload[self._idx['size']]
		)

		if not success:
			return None

		return filename
Example #3
0
	def export_image2file(self, aChunkSize=0, filename=None):

		if self._payload[self._idx['size']] == 0:
			return None

		if filename is None:
			suffix = None
			# preserve original filename extension if available
			if self._payload[self._idx['filename']] is not None:
				name, suffix = os.path.splitext(self._payload[self._idx['filename']])
				suffix = suffix.strip()
				if suffix == u'':
					suffix = None
			# get unique filename
			filename = gmTools.get_unique_filename (
				prefix = 'gm-tag_image-',
				suffix = suffix
			)

		success = gmPG2.bytea2file (
			data_query = {
				'cmd': u'SELECT substring(image from %(start)s for %(size)s) FROM ref.tag_image WHERE pk = %(pk)s',
				'args': {'pk': self.pk_obj}
			},
			filename = filename,
			chunk_size = aChunkSize,
			data_size = self._payload[self._idx['size']]
		)

		if success:
			return filename

		return None
Example #4
0
File: gmHL7.py Project: sk/gnumed
	def export_to_file(self, aChunkSize=0, filename=None):

		if self._payload[self._idx['data_size']] == 0:
			return None

		if self._payload[self._idx['data_size']] is None:
			return None

		if filename is None:
			filename = gmTools.get_unique_filename(prefix = 'gm-incoming_data_unmatched-')

		success = gmPG2.bytea2file (
			data_query = {
				'cmd': u'SELECT substring(data from %(start)s for %(size)s) FROM clin.incoming_data_unmatched WHERE pk = %(pk)s',
				'args': {'pk': self.pk_obj}
			},
			filename = filename,
			chunk_size = aChunkSize,
			data_size = self._payload[self._idx['data_size']]
		)

		if not success:
			return None

		return filename
Example #5
0
    def export_to_file(self, aChunkSize=0, filename=None):

        if self._payload[self._idx['data_size']] == 0:
            return None

        if self._payload[self._idx['data_size']] is None:
            return None

        if filename is None:
            filename = gmTools.get_unique_filename(
                prefix='gm-incoming_data_unmatched-')

        success = gmPG2.bytea2file(data_query={
            'cmd':
            u'SELECT substring(data from %(start)s for %(size)s) FROM clin.incoming_data_unmatched WHERE pk = %(pk)s',
            'args': {
                'pk': self.pk_obj
            }
        },
                                   filename=filename,
                                   chunk_size=aChunkSize,
                                   data_size=self._payload[
                                       self._idx['data_size']])

        if not success:
            return None

        return filename
Example #6
0
    def export_to_file(self, aChunkSize=0, filename=None, directory=None):

        if self._payload[self._idx['pk_doc_obj']] is not None:
            return self.document_part.export_to_file(
                aChunkSize=aChunkSize,
                filename=filename,
                ignore_conversion_problems=True,
                directory=directory)

        if filename is None:
            filename = self.get_useful_filename(directory=directory)

        success = gmPG2.bytea2file(data_query={
            'cmd':
            u'SELECT substring(data from %(start)s for %(size)s) FROM clin.export_item WHERE pk = %(pk)s',
            'args': {
                'pk': self.pk_obj
            }
        },
                                   filename=filename,
                                   chunk_size=aChunkSize,
                                   data_size=self._payload[self._idx['size']])

        if not success:
            return None

        return filename
Example #7
0
    def export_to_file(self,
                       aChunkSize=0,
                       filename=None,
                       target_mime=None,
                       target_extension=None,
                       ignore_conversion_problems=False,
                       directory=None):

        if self._payload[self._idx['size']] == 0:
            return None

        if filename is None:
            filename = self.get_useful_filename(make_unique=True,
                                                directory=directory)

        success = gmPG2.bytea2file(data_query={
            'cmd':
            u'SELECT substring(data from %(start)s for %(size)s) FROM blobs.doc_obj WHERE pk=%(pk)s',
            'args': {
                'pk': self.pk_obj
            }
        },
                                   filename=filename,
                                   chunk_size=aChunkSize,
                                   data_size=self._payload[self._idx['size']])

        if not success:
            return None

        if target_mime is None:
            return filename

        if target_extension is None:
            target_extension = gmMimeLib.guess_ext_by_mimetype(
                mimetype=target_mime)

        target_path, name = os.path.split(filename)
        name, tmp = os.path.splitext(name)
        target_fname = gmTools.get_unique_filename(prefix='%s-converted-' %
                                                   name,
                                                   suffix=target_extension)
        _log.debug('attempting conversion: [%s] -> [<%s>:%s]', filename,
                   target_mime, target_fname)
        if gmMimeLib.convert_file(filename=filename,
                                  target_mime=target_mime,
                                  target_filename=target_fname):
            return target_fname

        _log.warning('conversion failed')
        if not ignore_conversion_problems:
            return None

        _log.warning(
            'programmed to ignore conversion problems, hoping receiver can handle [%s]',
            filename)
        return filename
Example #8
0
	def save_to_file(self, aChunkSize=0, filename=None, target_mime=None, target_extension=None, ignore_conversion_problems=False, directory=None, adjust_extension=False, conn=None):

		if self._payload[self._idx['size']] == 0:
			return None

		if filename is None:
			filename = self.get_useful_filename(make_unique = True, directory = directory)

		success = gmPG2.bytea2file (
			data_query = {
				'cmd': 'SELECT substring(data from %(start)s for %(size)s) FROM blobs.doc_obj WHERE pk=%(pk)s',
				'args': {'pk': self.pk_obj}
			},
			filename = filename,
			chunk_size = aChunkSize,
			data_size = self._payload[self._idx['size']],
			conn = conn
		)
		if not success:
			return None

		if target_mime is None:
			if filename.endswith('.dat'):
				if adjust_extension:
					return gmMimeLib.adjust_extension_by_mimetype(filename)
			return filename

		if target_extension is None:
			target_extension = gmMimeLib.guess_ext_by_mimetype(mimetype = target_mime)

		target_path, name = os.path.split(filename)
		name, tmp = os.path.splitext(name)
		target_fname = gmTools.get_unique_filename (
			prefix = '%s-conv-' % name,
			suffix = target_extension
		)
		_log.debug('attempting conversion: [%s] -> [<%s>:%s]', filename, target_mime, target_fname)
		if gmMimeLib.convert_file (
			filename = filename,
			target_mime = target_mime,
			target_filename = target_fname
		):
			return target_fname

		_log.warning('conversion failed')
		if not ignore_conversion_problems:
			return None

		if filename.endswith('.dat'):
			if adjust_extension:
				filename = gmMimeLib.adjust_extension_by_mimetype(filename)
		_log.warning('programmed to ignore conversion problems, hoping receiver can handle [%s]', filename)
		return filename
Example #9
0
    def save_to_file(self,
                     aChunkSize=0,
                     target_mime=None,
                     target_extension=None,
                     ignore_conversion_problems=False):

        if self._payload[self._idx['is_textual']]:
            return None

        if self._payload[self._idx['data_size']] == 0:
            return None

        filename = gmTools.get_unique_filename(prefix='gm-data_snippet-')
        success = gmPG2.bytea2file(data_query={
            'cmd':
            'SELECT substring(binary_data from %(start)s for %(size)s) FROM ref.keyword_expansion WHERE pk = %(pk)s',
            'args': {
                'pk': self.pk_obj
            }
        },
                                   filename=filename,
                                   chunk_size=aChunkSize,
                                   data_size=self._payload[
                                       self._idx['data_size']])

        if not success:
            return None

        if target_mime is None:
            return filename

        if target_extension is None:
            target_extension = gmMimeLib.guess_ext_by_mimetype(
                mimetype=target_mime)

        target_fname = gmTools.get_unique_filename(
            prefix='gm-data_snippet-converted-', suffix=target_extension)
        _log.debug('attempting conversion: [%s] -> [<%s>:%s]', filename,
                   target_mime, target_fname)
        if gmMimeLib.convert_file(filename=filename,
                                  target_mime=target_mime,
                                  target_filename=target_fname):
            return target_fname

        _log.warning('conversion failed')
        if not ignore_conversion_problems:
            return None

        _log.warning(
            'programmed to ignore conversion problems, hoping receiver can handle [%s]',
            filename)
        return filename
Example #10
0
    def export_to_file(
        self,
        aChunkSize=0,
        filename=None,
        target_mime=None,
        target_extension=None,
        ignore_conversion_problems=False,
        directory=None,
    ):

        if self._payload[self._idx["size"]] == 0:
            return None

        if filename is None:
            filename = self.get_useful_filename(make_unique=True, directory=directory)

        success = gmPG2.bytea2file(
            data_query={
                "cmd": u"SELECT substring(data from %(start)s for %(size)s) FROM blobs.doc_obj WHERE pk=%(pk)s",
                "args": {"pk": self.pk_obj},
            },
            filename=filename,
            chunk_size=aChunkSize,
            data_size=self._payload[self._idx["size"]],
        )

        if not success:
            return None

        if target_mime is None:
            return filename

        if target_extension is None:
            target_extension = gmMimeLib.guess_ext_by_mimetype(mimetype=target_mime)

        target_path, name = os.path.split(filename)
        name, tmp = os.path.splitext(name)
        target_fname = gmTools.get_unique_filename(prefix="%s-converted-" % name, suffix=target_extension)
        _log.debug("attempting conversion: [%s] -> [<%s>:%s]", filename, target_mime, target_fname)
        if gmMimeLib.convert_file(filename=filename, target_mime=target_mime, target_filename=target_fname):
            return target_fname

        _log.warning("conversion failed")
        if not ignore_conversion_problems:
            return None

        _log.warning("programmed to ignore conversion problems, hoping receiver can handle [%s]", filename)
        return filename
Example #11
0
	def export_to_file(self, aChunkSize=0, target_mime=None, target_extension=None, ignore_conversion_problems=False):

		if self._payload[self._idx['is_textual']]:
			return None

		if self._payload[self._idx['data_size']] == 0:
			return None

		filename = gmTools.get_unique_filename(prefix = 'gm-data_snippet-')
		success = gmPG2.bytea2file (
			data_query = {
				'cmd': u'SELECT substring(binary_data from %(start)s for %(size)s) FROM ref.keyword_expansion WHERE pk = %(pk)s',
				'args': {'pk': self.pk_obj}
			},
			filename = filename,
			chunk_size = aChunkSize,
			data_size = self._payload[self._idx['data_size']]
		)

		if not success:
			return None

		if target_mime is None:
			return filename

		if target_extension is None:
			target_extension = gmMimeLib.guess_ext_by_mimetype(mimetype = target_mime)

		target_fname = gmTools.get_unique_filename (
			prefix = 'gm-data_snippet-converted-',
			suffix = target_extension
		)
		_log.debug('attempting conversion: [%s] -> [<%s>:%s]', filename, target_mime, target_fname)
		if gmMimeLib.convert_file (
			filename = filename,
			target_mime = target_mime,
			target_filename = target_fname
		):
			return target_fname

		_log.warning('conversion failed')
		if not ignore_conversion_problems:
			return None

		_log.warning('programmed to ignore conversion problems, hoping receiver can handle [%s]', filename)
		return filename
Example #12
0
	def __download_to_file(self, filename=None, aChunkSize=0, conn=None):
		if self._payload[self._idx['size']] == 0:
			_log.debug('part size 0, nothing to download')
			return None

		if filename is None:
			filename = gmTools.get_unique_filename()
		success = gmPG2.bytea2file (
			data_query = {
				'cmd': 'SELECT substring(data from %(start)s for %(size)s) FROM blobs.doc_obj WHERE pk=%(pk)s',
				'args': {'pk': self.pk_obj}
			},
			filename = filename,
			chunk_size = aChunkSize,
			data_size = self._payload[self._idx['size']],
			conn = conn
		)
		if not success:
			return None

		return filename
Example #13
0
    def save_to_file(self, aChunkSize=0, filename=None, directory=None):

        # data linked from archive
        if self._payload[self._idx['pk_doc_obj']] is not None:
            part = self.document_part
            if filename is None:
                filename = part.get_useful_filename(make_unique=False,
                                                    directory=directory,
                                                    include_gnumed_tag=False,
                                                    date_before_type=True,
                                                    name_first=False)
            return part.save_to_file(aChunkSize=aChunkSize,
                                     filename=filename,
                                     ignore_conversion_problems=True,
                                     adjust_extension=True)

        # data in export area table
        if filename is None:
            filename = self.get_useful_filename(directory=directory)

        success = gmPG2.bytea2file(data_query={
            'cmd':
            u'SELECT substring(data from %(start)s for %(size)s) FROM clin.export_item WHERE pk = %(pk)s',
            'args': {
                'pk': self.pk_obj
            }
        },
                                   filename=filename,
                                   chunk_size=aChunkSize,
                                   data_size=self._payload[self._idx['size']])
        if not success:
            return None

        if filename.endswith(u'.dat'):
            return gmMimeLib.adjust_extension_by_mimetype(filename)

        return filename