51 lines
1.4 KiB
JavaScript
51 lines
1.4 KiB
JavaScript
![]() |
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."
|
||
|
}
|
||
|
};
|