about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--uploader/publications/misc.py19
1 files changed, 17 insertions, 2 deletions
diff --git a/uploader/publications/misc.py b/uploader/publications/misc.py
index d93ecdd..fca6f71 100644
--- a/uploader/publications/misc.py
+++ b/uploader/publications/misc.py
@@ -4,7 +4,22 @@
 def publications_differences(
         filedata: tuple[dict, ...],
         dbdata: tuple[dict, ...],
-        pubmedid2pubidmap: dict[str, int]
+        pubmedid2pubidmap: tuple[dict, ...]
 ) -> tuple[dict, ...]:
     """Compute the differences between file data and db data"""
-    return tuple()
+    diff = tuple()
+    for filerow, dbrow in zip(
+            sorted(filedata, key=lambda item: (
+                item["phenotype_id"], item["xref_id"])),
+            sorted(dbdata, key=lambda item: (
+                item["PhenotypeId"], item["xref_id"]))):
+        if filerow["PubMed_ID"] == dbrow["PubMed_ID"]:
+            continue
+
+        newpubmed = filerow["PubMed_ID"]
+        diff = diff + ({
+            **dbrow,
+            "PubMed_ID": newpubmed,
+            "PublicationId": pubmedid2pubidmap.get(newpubmed)},)
+
+    return diff