NINS_CODE/bahmni_config/openmrs/apps/registration/fieldValidation.js

51 lines
1.4 KiB
JavaScript
Raw Permalink Normal View History

2024-12-12 22:37:39 +06:00
var getLunhAlgorithmSum = function(healthId) {
var lunhAlgorithmSum = 0,
currentDigit = 0,
isEvenIndexFromLast = false;
for (var n = healthId.length - 1; n >= 1; n--) {
var cDigit = healthId.charAt(n),
currentDigit = parseInt(cDigit, 10);
if (isEvenIndexFromLast) {
if ((currentDigit *= 2) > 9) currentDigit -= 9;
}
lunhAlgorithmSum += currentDigit;
isEvenIndexFromLast = !isEvenIndexFromLast;
}
return lunhAlgorithmSum;
}
var containFourConsecutiveDigits = function(healthId) {
var healthIdToCheck = healthId.slice(0, healthId.length - 1);
return healthIdToCheck.match(/([0-9])\1\1\1/);
}
var containTwoSetsOfThreeConsecutiveDigits = function(healthId) {
var healthIdToCheck = healthId.slice(0, healthId.length - 1);
var matches = healthIdToCheck.match(/([0-9])\1\1/g);
return matches && matches.length > 1;
}
Bahmni.Registration.customValidator = {
"healthId": {
method: function(name, value, attributeDetails) {
if (containFourConsecutiveDigits(value)) {
return false;
}
if (containTwoSetsOfThreeConsecutiveDigits(value)) {
return false
}
return (getLunhAlgorithmSum(value) % 10) == 0;
},
errorMessage: "Please Enter Valid Health ID."
},
"birthdate":{
method: function(name, value, attributeDetails) {
return (new Date().getFullYear()-value.getFullYear()) <= 115;
},
errorMessage: "Patient age should be less than or equal 115 years."
}
};