Code Duplication    Length = 22-23 lines in 3 locations

src/bika/lims/validators.py 3 locations

@@ 1527-1549 (lines=23) @@
1524
            ))
1525
1526
1527
class UpperLimitOfQuantificationValidator(object):
1528
    """Validates that the Upper Limit of Quantification (ULOD) is lower than
1529
    or equal to the Upper Limit of Detection (ULOD)
1530
    """
1531
    implements(IValidator)
1532
    name = "upper_limit_of_quantification_validator"
1533
1534
    def __call__(self, value, **kwargs):
1535
        instance = kwargs["instance"]
1536
        field_name = kwargs["field"].getName()
1537
1538
        # get the value (or fallback to field's default)
1539
        default = instance.getField(field_name).getDefault(instance)
1540
        uloq = api.to_float(value, default)
1541
1542
        # compare with the lower limit of detection
1543
        form = kwargs["REQUEST"].form
1544
        ulod = form.get("UpperDetectionLimit", None)
1545
        ulod = api.to_float(ulod, uloq)
1546
        if uloq > ulod:
1547
            return _t(_(
1548
                u"validator_uloq_above_ulod",
1549
                default=u"The Upper Limit of Quantification (LLOQ) cannot be "
1550
                        u"greater than the Upper Limit of Detection (ULOD)."
1551
            ))
1552
@@ 1499-1521 (lines=23) @@
1496
            ))
1497
1498
1499
class LowerLimitOfQuantificationValidator(object):
1500
    """Validates that the Lower Limit of Quantification (LLOQ) is lower than
1501
    the Upper Limit of Quantification (ULOQ)
1502
    """
1503
    implements(IValidator)
1504
    name = "lower_limit_of_quantification_validator"
1505
1506
    def __call__(self, value, **kwargs):
1507
        instance = kwargs["instance"]
1508
        field_name = kwargs["field"].getName()
1509
1510
        # get the value (or fallback to field's default)
1511
        default = instance.getField(field_name).getDefault(instance)
1512
        lloq = api.to_float(value, default)
1513
1514
        # compare with the lower limit of detection
1515
        form = kwargs["REQUEST"].form
1516
        uloq = form.get("UpperLimitOfQuantification", None)
1517
        uloq = api.to_float(uloq, lloq)
1518
        if lloq >= uloq:
1519
            return _t(_(
1520
                u"validator_lloq_above_uloq",
1521
                default=u"The Lower Limit of Quantification (LLOQ) cannot be "
1522
                        u"greater than or equal to the Upper Limit of "
1523
                        u"Quantification (ULOQ)."
1524
            ))
@@ 1472-1493 (lines=22) @@
1469
validation.register(ServiceConditionsValidator())
1470
1471
1472
class LowerLimitOfDetectionValidator(object):
1473
    """Validates that the Lower Limit of Detection (LLOD) is lower than or
1474
    equal to the Lower Limit of Quantification (LLOQ)
1475
    """
1476
    implements(IValidator)
1477
    name = "lower_limit_of_detection_validator"
1478
1479
    def __call__(self, value, **kwargs):
1480
        instance = kwargs["instance"]
1481
        field_name = kwargs["field"].getName()
1482
1483
        # get the value (or fallback to field's default)
1484
        default = instance.getField(field_name).getDefault(instance)
1485
        llod = api.to_float(value, default)
1486
1487
        form = kwargs["REQUEST"].form
1488
        lloq = form.get("LowerLimitOfQuantification", None)
1489
        lloq = api.to_float(lloq, llod)
1490
        if llod > lloq:
1491
            return _t(_(
1492
                u"validator_llod_above_lloq",
1493
                default=u"The Lower Limit of Detection (LLOD) cannot be "
1494
                        u"greater than the Lower Limit of Quantification "
1495
                        u"(LLOQ)."
1496
            ))