diff --git a/ippisite/ippidb/ws.py b/ippisite/ippidb/ws.py index cc4807daecf71b18736f27d57bd21a46b44dfa80..2cf9ecb8284f04e24e01958cde21fafc54f3dcf9 100644 --- a/ippisite/ippidb/ws.py +++ b/ippisite/ippidb/ws.py @@ -1,4 +1,5 @@ from bioservices.eutils import EUtils +import requests def get_pubmed_info(pmid): eu = EUtils() @@ -8,8 +9,26 @@ def get_pubmed_info(pmid): authors_list = [a['LastName']+ ' ' + a['Initials'] for a in article['AuthorList']['Author']] authors = ', '.join(authors_list) journal_name = article['Journal']['Title'] - biblio_year = article['Journal']['JournalIssue']['PubDate']['Year'] + biblio_date = article['Journal']['JournalIssue']['PubDate'] + if 'Year' in biblio_date: + biblio_year = biblio_date['Year'] + else: + biblio_year = biblio_date['MedlineDate'][0:3] return {'title':title, 'journal_name':journal_name, 'biblio_year':biblio_year, 'authors_list': authors} + +def get_epo_info(patent_number): + resp = requests.get('http://ops.epo.org/3.1/rest-services/published-data/publication/docdb/{}/biblio.json'.format(patent_number)) + data = resp.json() + exchange_doc = data['ops:world-patent-data']['exchange-documents']['exchange-document'] + if isinstance(exchange_doc, list): + exchange_doc = exchange_doc[0] + title = [el['$'] for el in exchange_doc['bibliographic-data']['invention-title'] if el['@lang']=='en'] + authors = [i['inventor-name']['name']['$'] for i in exchange_doc['bibliographic-data']['parties']['inventors']['inventor'] if i['@data-format']=='original'] + biblio_year = [el['date']['$'][:4] for el in exchange_doc['bibliographic-data']['publication-reference']['document-id'] if el['@document-id-type']=='epodoc'][0] + return {'title': title, + 'journal_name': None, + 'biblio_year': biblio_year, + 'authors_list': authors}