Currently grades. confidence and antigen-match are calculated within their own services, each service calling its own calculator to do the actual scoring. The caller services are responsible for determining the best score for each score type based on the best grade orientation(s).
This means three places had to be updated when we changed from patient-orientated to donor-orientated scoring (#1012). And the implementation of direct vs cross scoring is different in all 3 services, which is a pain to read and maintain.
Suggest creating one new service: LocusPositionScorer which calls each of the existing calculators, and handles direct vs cross logic just once!
Currently grades. confidence and antigen-match are calculated within their own services, each service calling its own calculator to do the actual scoring. The caller services are responsible for determining the best score for each score type based on the best grade orientation(s).
This means three places had to be updated when we changed from patient-orientated to donor-orientated scoring (#1012). And the implementation of direct vs cross scoring is different in all 3 services, which is a pain to read and maintain.
Suggest creating one new service:
LocusPositionScorer
which calls each of the existing calculators, and handles direct vs cross logic just once!