Skip to content

Commit

Permalink
Made BMI custom, Fixes for nutritional calculations and followup update
Browse files Browse the repository at this point in the history
melkam-mekonnen committed Jan 31, 2024
1 parent db67342 commit bc4fd01
Showing 4 changed files with 31 additions and 17 deletions.
38 changes: 25 additions & 13 deletions src/custom-expressions.ts
Original file line number Diff line number Diff line change
@@ -97,38 +97,50 @@ export function CalcViralLoadStatus(viralLoadCount: number) {
return viralLoadCount ? resultViralLoadStatus : null;
}

export function CalcAdultNutritionalStatus(bmi: number) {
export function CalcBMI(height: number, weight: number) {
let resultBMI;
let heightInMeters = height / 100;
if(height && weight) {
resultBMI = weight / (heightInMeters * heightInMeters);
resultBMI = resultBMI.toFixed(2);
}
return height && weight ? resultBMI : null;
}

export function CalcAdultNutritionalStatus(height: number, weight: number) {
let resultBMI = CalcBMI(height, weight);
let resultAdultNutritionalStatus: string;
if(bmi) {
if (bmi >= 18.5 && bmi <= 24.99) {
if(resultBMI) {
if (resultBMI >= 18.5 && resultBMI <= 24.99) {
resultAdultNutritionalStatus = "1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
} else if (bmi >= 17 && bmi <= 18.49) {
} else if (resultBMI >= 17 && resultBMI <= 18.49) {
resultAdultNutritionalStatus = "134723AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
} else if (bmi >= 16 && bmi <= 16.99) {
} else if (resultBMI >= 16 && resultBMI <= 16.99) {
resultAdultNutritionalStatus = "134722AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
} else if (bmi < 16) {
} else if (resultBMI < 16) {
resultAdultNutritionalStatus = "126598AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
} else if (bmi >= 25 && bmi <= 29.99) {
} else if (resultBMI >= 25 && resultBMI <= 29.99) {
resultAdultNutritionalStatus = "114413AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
} else {
resultAdultNutritionalStatus = "132626AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
}
}
return bmi ? resultAdultNutritionalStatus : null;
return resultBMI ? resultAdultNutritionalStatus : null;
}

export function CalcNutritionalScreening(bmi: number) {
export function CalcNutritionalScreening(height: number, weight: number) {
let resultNutritionalScreening: string;
if(bmi) {
if (bmi >= 18.5 && bmi <= 24.99) {
let resultBMI = CalcBMI(height, weight);
if(resultBMI) {
if (resultBMI >= 18.5 && resultBMI <= 24.99) {
resultNutritionalScreening = "1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
} else if (bmi >= 17 && bmi <= 29.99) {
} else if (resultBMI <= 16 && resultBMI <= 18.49) {
resultNutritionalScreening = "123815AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
} else {
resultNutritionalScreening = "114413AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
}
}
return bmi ? resultNutritionalScreening : null;
return resultBMI ? resultNutritionalScreening : null;
}

export async function getGender(patient) {
6 changes: 3 additions & 3 deletions src/forms/followup/followup.json
Original file line number Diff line number Diff line change
@@ -535,7 +535,7 @@
"type": "obs",
"questionOptions": {
"calculate": {
"calculateExpression": "Math.round(calcBMI('height','weight'))"
"calculateExpression": "CustomBMICalc('height','weight'))"
},
"rendering": "number",
"concept": "1cc8fe7f-fb70-49d8-9065-73654d852187",
@@ -687,7 +687,7 @@
"rendering": "radio",
"concept": "ae4d72a4-ccf5-49ff-b395-6687c534b1a2",
"calculate": {
"calculateExpression": "CustomAdultNutritionalStatusCalc('bmi')"
"calculateExpression": "CustomAdultNutritionalStatusCalc('height','weight')"
},
"answers": [
{
@@ -1225,7 +1225,7 @@
"rendering": "radio",
"concept": "2c5b553b-58f8-4462-b14e-0a6a6628a790",
"calculate": {
"calculateExpression": "CustomNutritionalScreeningCalc('bmi')"
"calculateExpression": "CustomNutritionalScreeningCalc('height','weight')"
},
"answers": [
{
2 changes: 1 addition & 1 deletion src/forms/intake-b/intake-b.json
Original file line number Diff line number Diff line change
@@ -1533,7 +1533,7 @@
"type": "obs",
"questionOptions": {
"calculate": {
"calculateExpression": "Math.round(calcBMI('height','weight'))"
"calculateExpression": "CustomBMICalc('height','weight'))"
},
"rendering": "number",
"concept": "1cc8fe7f-fb70-49d8-9065-73654d852187",
2 changes: 2 additions & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -32,6 +32,7 @@ import {
CalcViralLoadStatus,
CalcAdultNutritionalStatus,
CalcNutritionalScreening,
CalcBMI,
getGender,
getIdentifier,
} from "./custom-expressions";
@@ -57,6 +58,7 @@ export function startupApp() {
registerExpressionHelper("CustomViralLoadStatusCalc", CalcViralLoadStatus);
registerExpressionHelper("CustomAdultNutritionalStatusCalc", CalcAdultNutritionalStatus);
registerExpressionHelper("CustomNutritionalScreeningCalc", CalcNutritionalScreening);
registerExpressionHelper("CustomBMICalc", CalcBMI);
registerExpressionHelper("getGender", getGender);
registerExpressionHelper("getIdentifier", getIdentifier);

0 comments on commit bc4fd01

Please sign in to comment.