Adding MELD Score and its docs
This commit is contained in:
27
docs/miscellaneous/MELD.md
Normal file
27
docs/miscellaneous/MELD.md
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# Model for End-stage Liver Disease (MELD) score
|
||||||
|
|
||||||
|
#### MELD score is a numerical value that is used to predict the 3-month mortality prediction risk of a patient. It is also used to prioritize patients for liver transplantations with higher score indicating a more urgent need.
|
||||||
|
### Parameters needed
|
||||||
|
| Parameter | Unit |
|
||||||
|
| --------- | ---- |
|
||||||
|
| Serum Bilirubin | mg/dL |
|
||||||
|
| Serum Creatinine | mg/dL |
|
||||||
|
| International Normalized Ratio (INR) | - |
|
||||||
|
### MELD Score interpretation table:-
|
||||||
|
|
||||||
|
| Score range | Mortality risk |
|
||||||
|
| ----------- | -------------- |
|
||||||
|
| less than 9 | Low risk (under 1.9%) |
|
||||||
|
| 10 to 19 | Low to Moderate (6.0% - 19.6%) |
|
||||||
|
| 20 to 29 | Moderate risk (19.6% - 52.6%) |
|
||||||
|
| 30 to 39 | High risk (52.6% - 71.3%) |
|
||||||
|
| more than 40 | Extremely high risk (71.3% - 100%) |
|
||||||
|
|
||||||
|
### Formula to calculate MELD:-
|
||||||
|
The MELD score is calculated using the following formula:-
|
||||||
|
$$
|
||||||
|
\textbf{MELD} = (9.57 \times \ln(\text{Serum Creatinine})) + (3.78 \times \text{Serum Bilirubin}) + (11.2 \times \text{INR}) + 6.43
|
||||||
|
$$
|
||||||
|
|
||||||
|
### Notice:-
|
||||||
|
The MELD score is not considered accurate for advanced liver diseases. Other calulcators like MELD-Na should be used before taking clinical decisions
|
||||||
@@ -25,7 +25,6 @@ export default function RenderCalculator({section, id} : {section:string, id:str
|
|||||||
level:"none",
|
level:"none",
|
||||||
message:"none"
|
message:"none"
|
||||||
});
|
});
|
||||||
console.log(form);
|
|
||||||
return calculator ? (
|
return calculator ? (
|
||||||
<>
|
<>
|
||||||
<div className="mb-6 mt-10">
|
<div className="mb-6 mt-10">
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ export default function Result({interpretation, calculated_value, unit} : {inter
|
|||||||
}else{
|
}else{
|
||||||
levelClass = "bg-white";
|
levelClass = "bg-white";
|
||||||
}
|
}
|
||||||
console.log(levelClass);
|
|
||||||
return(
|
return(
|
||||||
<div className={`card max-w-auto ${levelClass} bg-base-100 shadow-sm mt-5 ${levelClass}`}>
|
<div className={`card max-w-auto ${levelClass} bg-base-100 shadow-sm mt-5 ${levelClass}`}>
|
||||||
<div className="card-body">
|
<div className="card-body">
|
||||||
|
|||||||
83
src/app/utils/calculators/miscellaneous/MELD.ts
Normal file
83
src/app/utils/calculators/miscellaneous/MELD.ts
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
import { Calculator, Input, Interpretation, Values } from "../types";
|
||||||
|
|
||||||
|
const parameters : Input[] = [
|
||||||
|
{
|
||||||
|
id:"sbilirubin",
|
||||||
|
type:"number",
|
||||||
|
name:"Serum (Total) Bilirubin",
|
||||||
|
defaultUnit:"mg/dL",
|
||||||
|
placeholder:"Enter serum bilirubin levels in mg/dL",
|
||||||
|
required:true,
|
||||||
|
min:0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id:"screatinine",
|
||||||
|
type:"number",
|
||||||
|
name:"Serum Creatinine",
|
||||||
|
defaultUnit:"mg/dL",
|
||||||
|
placeholder:"Enter Serum Creatinine levels in mg/dL",
|
||||||
|
required:true,
|
||||||
|
min:0.2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id:'inr',
|
||||||
|
name:"International Normalized Ratio",
|
||||||
|
type:'number',
|
||||||
|
placeholder:"Enter INR values",
|
||||||
|
required:true,
|
||||||
|
min:0
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
export const MELD:Calculator = {
|
||||||
|
id:"meld-score",
|
||||||
|
name:"Model For End-stage Liver Disease (MELD) score",
|
||||||
|
desc:"MELD (Model for End-stage Liver Disease) score is a numerical scale ranging from 6 to 40 that estimates the 3-month mortality risk for patients with CLD (Chronic Liver Disease)",
|
||||||
|
inputs:parameters,
|
||||||
|
calc_func:(values : Values):number => {
|
||||||
|
const sbilirubin = values.sbilirubin as number;
|
||||||
|
const screatinine = values.screatinine as number;
|
||||||
|
const inr = values.inr as number;
|
||||||
|
const score = (9.57 * Math.log(screatinine))
|
||||||
|
+ (3.78 * Math.log(sbilirubin))
|
||||||
|
+ (11.2 * Math.log(inr))
|
||||||
|
+ 6.43;
|
||||||
|
return Math.floor(score);
|
||||||
|
},
|
||||||
|
interpret_func:(score : number):Interpretation => {
|
||||||
|
if(score <= 9){
|
||||||
|
return {
|
||||||
|
level:"none",
|
||||||
|
message:"The mortality prediction percent for the patient is 1.9%",
|
||||||
|
advice:"Patient is a great candidate for TIPS procedure"
|
||||||
|
}
|
||||||
|
}else if(score >= 10 && score < 20){
|
||||||
|
if(score < 14){
|
||||||
|
return{
|
||||||
|
level:"low",
|
||||||
|
message:"The mortality risk percent for the patient is less than 6.0%",
|
||||||
|
advice:"Patient is a great candidate for TIPS procedure"
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return{
|
||||||
|
level:"low",
|
||||||
|
message:"The mortality risk percent for the patient is from 6.0% to 19.6%",
|
||||||
|
};
|
||||||
|
}else if (score >=20 && score < 30){
|
||||||
|
return {
|
||||||
|
level:"moderate",
|
||||||
|
message:"The mortality risk percent for the patient is from 19.6% to 52.6%"
|
||||||
|
};
|
||||||
|
}else if(score >= 30 && score < 40){
|
||||||
|
return {
|
||||||
|
level:"high",
|
||||||
|
message:"The mortality risk percent for the patient is from 52.6% to 71.3%"
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
return {
|
||||||
|
level:"severe",
|
||||||
|
message:"The mortality risk percent for the patient is more than 71.3%"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import { cockcroftGault } from "./miscellaneous/cockcroft-gault-eq";
|
import { cockcroftGault } from "./miscellaneous/cockcroft-gault-eq";
|
||||||
import { IMPACT } from "./transplantation/IMPACT";
|
import { IMPACT } from "./transplantation/IMPACT";
|
||||||
import { Section } from "./types";
|
import { Section } from "./types";
|
||||||
|
import { MELD } from "./miscellaneous/MELD";
|
||||||
export const CalculatorRegistry : Record<string, Section> = {
|
export const CalculatorRegistry : Record<string, Section> = {
|
||||||
transplantation:{
|
transplantation:{
|
||||||
id:"transplantation",
|
id:"transplantation",
|
||||||
@@ -18,7 +18,8 @@ export const CalculatorRegistry : Record<string, Section> = {
|
|||||||
textColor:"#ccc",
|
textColor:"#ccc",
|
||||||
svg:"",
|
svg:"",
|
||||||
calculators:[
|
calculators:[
|
||||||
cockcroftGault
|
cockcroftGault,
|
||||||
|
MELD
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user