Urology.dart 843 B

12345678910111213141516171819202122232425262728293031
  1. // ignore_for_file: constant_identifier_names
  2. import 'package:fis_measure/configs/patient.dart';
  3. import 'package:fis_measure/interfaces/enums/species.dart';
  4. class UrologyFormulas {
  5. UrologyFormulas._();
  6. static final IUrologyFormulaStrategy _singleton =
  7. GlobalPatientConfig.speciesType == SpeciesType.mouse
  8. ? BaseUrologyFormulas()
  9. : AnimalsUrologyFormulas();
  10. static double calcRUV(double d1, double d2) {
  11. return _singleton.calcRUV(d1, d2);
  12. }
  13. }
  14. abstract class IUrologyFormulaStrategy {
  15. double calcRUV(double d1, double d2);
  16. }
  17. class BaseUrologyFormulas implements IUrologyFormulaStrategy {
  18. /// 计算残余尿
  19. @override
  20. double calcRUV(double d1, double d2) {
  21. double ruv = d1 * d2 * 5.9 - 14.9;
  22. return ruv < 0 ? 0 : ruv;
  23. }
  24. }
  25. class AnimalsUrologyFormulas extends BaseUrologyFormulas {}