Anthony-Nolan / Atlas

A free & open-source Donor Search Algorithm Service
GNU General Public License v3.0
9 stars 5 forks source link

Indicate allele vs antigen mismatch #884

Closed mmelchers closed 1 year ago

mmelchers commented 1 year ago

Title As a search coordinator I want to know whether a mismatch is an antigen or an allele mismatch. This is especially relevant for cord searches.

Description In WMDA Search and Match we need to indicate whether a mismatch is an antigen or allele mismatch. ATLAS currently does not provide that info so we always set it to "Antigen", which may confuse some search coordinators. Antigen vs allele mismatch should be based on serology. Please check this page on what should and should not be considered an antigen match: https://share.wmda.info/x/soAZGQ

Component(s) to enhance (if known) ?

Business value (select one or more):

How would this enhancement provide this value? Search coordinators are better able to determine the best cord search result.

Acceptance Criteria GIVEN a search in ATLAS has successfully finished WHEN a certain record in the search results has a mismatch THEN the type of mismatch (antigen vs allele) is indicated along with its position

Required By Date (if any) Please explain the significance of the date, if provided.

zabeen commented 1 year ago

@mmelchers is there a required by date for this issue?

mmelchers commented 1 year ago

@zabeen I am not sure. I know for some organisations it can be very important. It would definitely help adoption if this feature is present before we go live for everybody.

zabeen commented 1 year ago

HLD

This involves extending scoring to compare the equivalent serologies of patient-donor typings. The data needed to do this is already being extracted from the IMGT/HLA file, rel_dna_ser. So it should be a fairly isolated change to use that data within scoring to assess whether a P-group mismatched typing is antigen-matched.

I have considered two options for providing the info of whether an allele mismatch is antigen matched/mismatched: 1) Add a new grade to the MatchGrade enum of AntigenMatchedMismatch, which would be listed between the existing Mismatch grade (which would now mean "allele mismatch AND antigen mismatch" and PermissiveMismatch grade. 2) Do not extend MatchGrade enum, but instead extend the LocusPositionScoreDetails model with a new bool property: IsAntigenMatch. This would always have the value of true, except when the MatchGrade is Mismatch AND the mismatch is also an antigen mismatch.

I am going with solution 2, as there is a risk of breaking existing logic with solution 1 (either within Atlas or within AN search which is already using Atlas scoring) as it would change the meaning of the grade Mismatch.

zabeen commented 1 year ago

Testing Notes

DmitriyShcherbina commented 1 year ago

@zabeen Testing status: ok There is a new isAntigenMatch parameter in Search results of my requests

Image

zabeen commented 1 year ago

Hold off on WMDA testing until analysis of exercise 2 #964 has been completed

zabeen commented 1 year ago

As exercise 2 involved validation of this work, and change has been in UAT for some time, I am going to assume it is working as expected, and close this ticket. Any bugs regarding this feature can be raised as a new issue.