Difference between revisions of "MediaWiki:Gadget-calculator-patients-patientInput.js"
From WikiAnesthesia
				Chris Rishel (talk | contribs) m (Chris.Rishel moved page MediaWiki:Gadget-calculator-patientinput.js to MediaWiki:Gadget-calculator-patientInput.js without leaving a redirect)  | 
				Chris Rishel (talk | contribs)   | 
				||
| Line 3: | Line 3: | ||
  */  |   */  | ||
( function() {  | ( function() {  | ||
    // Units for age (37 weeks = birth)  | |||
    mw.calculators.addUnits( {  | |||
        wk: {  | |||
            baseName: 'age',  | |||
            definition: '0.01923 year',  | |||
            offset: -37  | |||
        },  | |||
        mo: {  | |||
            baseName: 'age',  | |||
            definition: '1 month'  | |||
        },  | |||
        yr: {  | |||
            baseName: 'age',  | |||
            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( {  |      mw.calculators.addVariables( {  | ||
         age: {  |          age: {  | ||
| Line 43: | Line 84: | ||
             defaultValue: '75 kgwt',  |              defaultValue: '75 kgwt',  | ||
             maxLength: 3,  |              maxLength: 3,  | ||
             units: [  |              units: [  | ||
                 'kgwt',  |                  'kgwt',  | ||
| Line 54: | Line 92: | ||
     } );  |      } );  | ||
     var containerId = 'calculator-  |      var containerId = 'calculator-patientInput';  | ||
     if( !$( '#' + containerId ).length ) {  |      if( !$( '#' + containerId ).length ) {  | ||
Revision as of 09:09, 28 July 2021
/**
 * @author Chris Rishel
 */
( function() {
    // Units for age (37 weeks = birth)
    mw.calculators.addUnits( {
        wk: {
            baseName: 'age',
            definition: '0.01923 year',
            offset: -37
        },
        mo: {
            baseName: 'age',
            definition: '1 month'
        },
        yr: {
            baseName: 'age',
            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',
            defaultValue: '40 yr',
            maxLength: 3,
            units: [
                'yr',
                'mo',
                'wk'
            ]
        },
        gender: {
            name: 'Gender',
            type: 'string',
            defaultValue: 'F',
            options: [
                'F',
                'M'
            ]
        },
        height: {
            name: 'Height',
            type: 'number',
            abbreviation: 'Ht',
            defaultValue: '175 cm',
            maxLength: 3,
            units: [
                'cm',
                'm',
                'in',
                'ft'
            ]
        },
        weight: {
            name: 'Weight',
            type: 'number',
            abbreviation: 'Wt',
            defaultValue: '75 kgwt',
            maxLength: 3,
            units: [
                'kgwt',
                'lbwt',
                'gwt'
            ]
        }
    } );
    var containerId = 'calculator-patientInput';
    if( !$( '#' + containerId ).length ) {
        var $container = $( '<div>', {
            id: containerId
        } );
        $container.addClass( 'container border-bottom px-0 py-1' );
        var $containerRow = $( '<div>', {
            class: 'form-row align-items-center'
        } );
        var inputOptions = {
            size: 'compact'
        };
        $containerRow.append( mw.calculators.getVariable( 'weight' ).createInput( inputOptions ) );
        $containerRow.append( mw.calculators.getVariable( 'height' ).createInput( inputOptions ) );
        $containerRow.append( mw.calculators.getVariable( 'age' ).createInput( inputOptions ) );
        $containerRow.append( mw.calculators.getVariable( 'gender' ).createInput( inputOptions ) );
        $container.appendTo( $( '#contentHeader' ) );
        $container.append( $containerRow );
    }
}() );