def METHOD_NAME(self):
    """Return the form as a valid ILLRequest data structure."""
    data = remove_empties_from_dict({
        'document': {
            'title': self.document.title.data,
            'authors': self.document.authors.data,
            'publisher': self.document.publisher.data,
            'year': str(self.document.year.data or ''),
            'identifier': self.document.identifier.data,
            'source': {
                'journal_title': self.document.source.journal_title.data,
                'volume': self.document.source.volume.data,
                'number': self.document.source.number.data,
            }
        },
        # the loan status is required by the jsonschema, it is always
        # PENDING on ill request creation
        'loan_status': "PENDING",
        'pickup_location': {
            '$ref': get_ref_for_pid('locations', self.pickup_location.data)
        },
        'pages': self.pages.data,
        'found_in': {
            'source': self.source.origin.data,
            'url': self.source.url.data
        }
    })
    if self.note.data:
        data['notes'] = [{
            'type': 'public_note',
            'content': self.note.data
        }]
    # if we put 'copy' in the dict before the dict cleaning and if 'copy'
    # is set to 'No', then it will be removed by `remove_empties_from_dict`
    # So we need to add it after the cleaning
    data['copy'] = self.copy.data == '1'
    # if user select 'not specified' into the ILL request form, this value
    # must be removed from the dict.
    if data.get('document', {}).get('year') == 'n/a':
        del data['document']['year']
    return data