Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions civicpy/exports/civic_gks_record.py
Original file line number Diff line number Diff line change
Expand Up @@ -941,7 +941,12 @@ def get_reported_in(assertion: Assertion) -> list[iriReference]:
:param assertion: CIViC assertion record
:return: List of CIViC links to records which the assertion is reported in
"""
return [iriReference(f"{LINKS_URL}/assertion/{assertion.id}")]
reported_in: list[iriReference] = [
iriReference(f"{LINKS_URL}/assertion/{assertion.id}")
]
for evidence_item in assertion.evidence_items or []:
reported_in.append(iriReference(f"{LINKS_URL}/evidence/{evidence_item.id}"))
return reported_in


class CivicGksClinSigAssertion(
Expand Down Expand Up @@ -1065,7 +1070,6 @@ def get_evidence_lines(
)

evidence_items: list[CivicGksEvidence] = []
eid_links: list[str] = []
for evidence_item in assertion.evidence_items:
try:
evidence_items.append(CivicGksEvidence(evidence_item))
Expand All @@ -1081,9 +1085,6 @@ def get_evidence_lines(
evidence_item.name,
str(e),
)
finally:
# Retain all EID references
eid_links.append(f"{LINKS_URL}/evidence/{evidence_item.id}")

if assertion.assertion_type == CivicEvidenceAssertionType.PREDICTIVE:
evidence_line_cls = TherapeuticEvidenceLine
Expand All @@ -1103,7 +1104,6 @@ def get_evidence_lines(
strengthOfEvidenceProvided=MappableConcept(
primaryCoding=(Coding(code=level, system=System.AMP_ASCO_CAP))
),
extensions=[Extension(name="citations", value=eid_links)]
).root
]

Expand Down
33 changes: 12 additions & 21 deletions civicpy/tests/test_exports.py
Original file line number Diff line number Diff line change
Expand Up @@ -482,23 +482,17 @@ def gks_aid6(
"system": "AMP/ASCO/CAP Guidelines, 2017",
},
},
"extensions": [
{
"name": "citations",
"value": [
"https://civicdb.org/links/evidence/2997",
"https://civicdb.org/links/evidence/879",
"https://civicdb.org/links/evidence/982",
"https://civicdb.org/links/evidence/883",
"https://civicdb.org/links/evidence/968",
"https://civicdb.org/links/evidence/2629"
]
}

]
}
],
"reportedIn": ["https://civicdb.org/links/assertion/6"],
"reportedIn": [
"https://civicdb.org/links/assertion/6",
"https://civicdb.org/links/evidence/2997",
"https://civicdb.org/links/evidence/879",
"https://civicdb.org/links/evidence/982",
"https://civicdb.org/links/evidence/883",
"https://civicdb.org/links/evidence/968",
"https://civicdb.org/links/evidence/2629",
],
}
return VariantClinicalSignificanceStatement(**params)

Expand Down Expand Up @@ -867,12 +861,9 @@ def test_citations(self, test_is_valid_for_gks_json, test_evidence_items, aid20)
record = CivicGksClinSigAssertion(aid20)
assert len(record.hasEvidenceLines) == 1
assert record.hasEvidenceLines[0].hasEvidenceItems is None
assert len(record.hasEvidenceLines[0].extensions) == 1
assert record.hasEvidenceLines[0].extensions[0].model_dump(
exclude_none=True
) == {
"name": "citations",
"value": ["https://civicdb.org/links/evidence/11881"],
assert {r.model_dump(exclude_none=True) for r in record.reportedIn or []} == {
"https://civicdb.org/links/evidence/11881",
"https://civicdb.org/links/assertion/20",
}


Expand Down