|
|
(4 intermediate revisions by the same user not shown) |
Line 55: |
Line 55: |
| }, | | }, |
| gender: { | | gender: { |
| name: 'Gender', | | name: 'Sex', |
| type: 'string', | | type: 'string', |
| options: [ | | options: [ |
Line 87: |
Line 87: |
| 'gwt' | | 'gwt' |
| ] | | ] |
| }
| |
| } );
| |
|
| |
| /**
| |
| * Very basic patient calculations which may be used by many modules
| |
| */
| |
|
| |
| mw.calculators.addCalculations( {
| |
| ibw: {
| |
| name: 'Ideal body weight',
| |
| abbreviation: 'IBW',
| |
| data: {
| |
| variables: {
| |
| required: [ 'height', 'gender' ]
| |
| }
| |
| },
| |
| units: 'kgwt',
| |
| link: 'https://en.wikipedia.org/wiki/Human_body_weight#Ideal_body_weight',
| |
| description: 'Ideal body weight may only be applied to persons 152 cm (60 inches) or taller',
| |
| formula: '<math>\\mathrm{IBW} = \\begin{cases}45.5 + 2.3 * (\\mathrm{height_{in}} - 60) & \\text{if female} \\\\50 + 2.3 * (\\mathrm{height_{in}} - 60) & \\text{if male}\\end{cases}</math>',
| |
| references: [
| |
| 'Devine BJ. Gentamicin therapy. Drug Intell Clin Pharm. 1974;8:650–655.'
| |
| ],
| |
| calculate: function( data ) {
| |
| if( data.height.toNumber( 'cm' ) < 152 ) {
| |
| throw new Error( 'Ideal body weight may only be applied to persons 152 cm (60 inches) or taller' );
| |
| }
| |
|
| |
| var baseWeight;
| |
|
| |
| if( data.gender === 'F' ) {
| |
| baseWeight = 45.5;
| |
| } else if( data.gender === 'M' ) {
| |
| baseWeight = 50;
| |
| } else {
| |
| throw new Error( 'Invalid gender "' + data.gender + '"' );
| |
| }
| |
|
| |
| // baseWeight + 2.3 kg for every inch over 5 feet
| |
| return baseWeight + 2.3 * ( data.height.toNumber( 'in' ) - 60 );
| |
| }
| |
| },
| |
| lbw: {
| |
| name: 'Lean body weight',
| |
| abbreviation: 'LBW',
| |
| data: {
| |
| variables: {
| |
| required: [ 'weight', 'height', 'gender' ]
| |
| }
| |
| },
| |
| units: 'kgwt',
| |
| link: 'https://en.wikipedia.org/wiki/Lean_body_mass',
| |
| formula: '<math>\\mathrm{LBW} = \\begin{cases} \\frac{9270 * \\mathrm{weight_{kg}}}{8780+(244*\\mathrm{BMI})} & \\text{if female} \\\\\\\\ \\frac{9270 * \\mathrm{weight_{kg}}}{6680+(216*\\mathrm{BMI})} & \\text{if male} \\end{cases}</math>',
| |
| references: [
| |
| 'Janmahasatian S, Duffull SB, Ash S, Ward LC, Byrne NM, Green B. Quantification of lean bodyweight. Clin Pharmacokinet. 2005; 44(10): 1051-65.'
| |
| ],
| |
| calculate: function( data ) {
| |
| if( data.gender === 'F' ) {
| |
| return 9270 * data.weight.toNumber( 'kgwt' ) / ( 8780 + 244 * data.weight.toNumber( 'kgwt' ) / Math.pow( data.height.toNumber( 'm' ), 2 ) );
| |
| } else if( data.gender === 'M' ) {
| |
| return 9270 * data.weight.toNumber( 'kgwt' ) / ( 6680 + 216 * data.weight.toNumber( 'kgwt' ) / Math.pow( data.height.toNumber( 'm' ), 2 ) );
| |
| } else {
| |
| throw new Error( 'Invalid gender "' + data.gender + '"' );
| |
| }
| |
| }
| |
| },
| |
| tbw: {
| |
| name: 'Total body weight',
| |
| abbreviation: 'TBW',
| |
| data: {
| |
| variables: {
| |
| required: [ 'weight' ]
| |
| }
| |
| },
| |
| units: 'kgwt',
| |
| calculate: function( data ) {
| |
| return data.weight.toNumber( 'kgwt' );
| |
| }
| |
| } | | } |
| } ); | | } ); |
| }() ); | | }() ); |
Latest revision as of 21:23, 11 July 2022
/**
* @author Chris Rishel
*/
( function() {
// Units for age (37 weeks = birth)
mw.calculators.addUnits( {
wk: {
definition: '0.01923 year',
offset: -37
},
mo: {
definition: '1 month'
},
yr: {
definition: '1 year',
aliases: [ 'yo' ]
}
} );
// Units for weight
// Body weight needs to be treated as a different fundamental unit type from mass (otherwise it would cancel out
// doing stoichiometry calculations.
// Gram-weight, which uses short SI prefixes (e.g. 1 kgwt = 1000 gwt)
mw.calculators.addUnitsBases( {
weight: {
toString: function( units ) {
return units.replace( 'wt', '' );
}
}
} );
mw.calculators.addUnits( {
gwt: {
baseName: 'weight',
prefixes: 'short'
},
lbwt: {
baseName: 'weight',
definition: '453.59237 gwt'
}
} );
mw.calculators.addVariables( {
age: {
name: 'Age',
type: 'number',
minValue: '20 wk',
maxValue: '125 yr',
maxLength: 3,
units: [
'yr',
'mo',
'wk'
]
},
gender: {
name: 'Sex',
type: 'string',
options: [
'',
'F',
'M'
]
},
height: {
name: 'Height',
type: 'number',
minValue: '20 cm',
maxValue: '300 cm',
maxLength: 3,
units: [
'cm',
'm',
'in',
'ft'
]
},
weight: {
name: 'Weight',
type: 'number',
minValue: '200 gwt',
maxValue: '750 kgwt',
maxLength: 3,
units: [
'kgwt',
'lbwt',
'gwt'
]
}
} );
}() );