[1494] | 1 | <?xml version="1.0" standalone="yes"?>
|
---|
| 2 | <REMINDER_EXCHANGE_FILE_ENTRY>
|
---|
| 3 | <PACKAGE_VERSION>2.0P17</PACKAGE_VERSION>
|
---|
| 4 | <INDEX_AT>151</INDEX_AT>
|
---|
| 5 | <SOURCE>
|
---|
| 6 | <NAME>VW-BMI-PERCENTILE</NAME>
|
---|
| 7 | <USER>HABIEL,SAM</USER>
|
---|
| 8 | <SITE>VOE OFFICE INSTITUTION</SITE>
|
---|
| 9 | <DATE_PACKED>07/20/2012@16:15:11</DATE_PACKED>
|
---|
| 10 | </SOURCE>
|
---|
| 11 | <DESCRIPTION><![CDATA[
|
---|
| 12 | The VW-BMI-PERCENTILE computed finding calculates the patient's body mass
|
---|
| 13 | index percentile. The value returned, which can be used in the CONDITION
|
---|
| 14 | field of the findings, is the body mass index percentile. It only works
|
---|
| 15 | for patients who are 18 years of age or less. Patients over 18 get a
|
---|
| 16 | result of "Not Found", even if a BMI can be calculated.
|
---|
| 17 |
|
---|
| 18 | An example of using the VW-BMI-PERCENTILE computed finding:
|
---|
| 19 | 1) Create a finding in a reminder that is the VW-BMI-PERCENTILE computed
|
---|
| 20 | finding;
|
---|
| 21 | 2) Add logic in the CONDITION field to check for a particular BMI
|
---|
| 22 | Percentile value: "I V>25";
|
---|
| 23 | 3) This finding will be evaluated to true for patients with a BMI
|
---|
| 24 | percentile that is greater than 25.
|
---|
| 25 |
|
---|
| 26 | This is a multi-occurrence computed finding.
|
---|
| 27 | ]]></DESCRIPTION>
|
---|
| 28 | <KEYWORDS>
|
---|
| 29 | <KEYWORD>BMI</KEYWORD>
|
---|
| 30 | <KEYWORD>PERCENTILE</KEYWORD>
|
---|
| 31 | <KEYWORD>COMPUTED</KEYWORD>
|
---|
| 32 | <KEYWORD>FINDING</KEYWORD>
|
---|
| 33 | </KEYWORDS>
|
---|
| 34 | <M_ROUTINE>
|
---|
| 35 | <ROUTINE_NAME>C0QRMBMI</ROUTINE_NAME>
|
---|
| 36 | <CHECKSUM>961533736</CHECKSUM>
|
---|
| 37 | <CODE>
|
---|
| 38 | <![CDATA[
|
---|
| 39 | C0QRMBMI ; VEN/SMH - BMI Percentile and BSA computed finding; 7/20/12 4:00pm
|
---|
| 40 | ;;1.0;QUALITY MEASURES;**1**;
|
---|
| 41 | ;
|
---|
| 42 | ; VEN/SMH - on July 16 2012
|
---|
| 43 | ; Added PBMI as a new Computed Finding -- essentially the same as BMI
|
---|
| 44 | ; PBMI = Percentile BMI;
|
---|
| 45 | ;
|
---|
| 46 | ; PEPs: PBMI
|
---|
| 47 | ;
|
---|
| 48 | PBMI(DFN,NGET,BDT,EDT,NFOUND,TEST,DATE,DATA,TEXT) ; Multi-occurrence computed
|
---|
| 49 | ; finding for BMI percentile; PEP
|
---|
| 50 | ; Input Variables: Follows Reminders API.
|
---|
| 51 | ; Additional Input Variables from ST: PXRMDOB, PXRMSEX
|
---|
| 52 | ; Output Variables: Follows Reminders API.
|
---|
| 53 | ;
|
---|
| 54 | ; Get BMIs from Standard Reminders Call (added in Patch 12)
|
---|
| 55 | D BMI^PXRMBMI(DFN,NGET,BDT,EDT,.NFOUND,.TEST,.DATE,.DATA,.TEXT) ; BMI call
|
---|
| 56 | ;
|
---|
| 57 | ; Walk through BMI results
|
---|
| 58 | N IND ; Index
|
---|
| 59 | F IND=1:1:NFOUND D Q:'NFOUND ; If NFOUND is zero'ed, quit.
|
---|
| 60 | . ;
|
---|
| 61 | . ; S TEST(IND)=1,DATE(IND)=TDATE ; The same; won't set here.
|
---|
| 62 | . ; S TEXT(IND)="height measured "_$$EDATE^PXRMDATE(HDATE) ; the same
|
---|
| 63 | . N BMI S BMI=DATA(IND,"VALUE") ; Get BMI
|
---|
| 64 | . N PBMI ; BMI Percentile
|
---|
| 65 | . ; We use PXRMDATE API to grab the Reminders Date Due, not today's date.
|
---|
| 66 | . N AGE S AGE=$$FMDIFF^XLFDT($$NOW^PXRMDATE(),PXRMDOB,1)/365.24 ; Age in yrs
|
---|
| 67 | . ;
|
---|
| 68 | . ; If the ep exists, call it, otherwise, mark as not found.
|
---|
| 69 | . I $T(BMIPCTL^TMGGRC1)]"" S PBMI=$$BMIPCTL^TMGGRC1(AGE,PXRMSEX,BMI,1)
|
---|
| 70 | . E S NFOUND=0 QUIT
|
---|
| 71 | . ;
|
---|
| 72 | . ; Also, if N/A (patient above 18 yo) - mark as not found.
|
---|
| 73 | . I PBMI["N/A" S NFOUND=0 QUIT ; Not available for anybody above 18 yo.
|
---|
| 74 | . ;
|
---|
| 75 | . ; We get a textish result (e.g. 78th percentile); convert to number
|
---|
| 76 | . S PBMI=+PBMI
|
---|
| 77 | . ;
|
---|
| 78 | . ; Set return values (NB: BMI subscript is still there)
|
---|
| 79 | . S (DATA(IND,"VALUE"),DATA(IND,"BMI%ILE"))=PBMI
|
---|
| 80 | QUIT
|
---|
| 81 | ;
|
---|
| 82 | TPBMI(DFN) ; Test PBMI; Pass DFN by Value; Private, for testing only
|
---|
| 83 | N NFOUND,TEST,DATE,DATA,TEXT
|
---|
| 84 | N PXRMSEX S PXRMSEX=$P(^DPT(DFN,0),U,2)
|
---|
| 85 | N PXRMDOB S PXRMDOB=$P(^DPT(DFN,0),U,3)
|
---|
| 86 | N PXRMAGE S PXRMAGE=$$GET1^DIQ(2,DFN,"AGE")
|
---|
| 87 | D PBMI^C0QRMBMI(DFN,99,3000000,$$DT^XLFDT(),.NFOUND,.TEST,.DATE,.DATA,.TEXT)
|
---|
| 88 | I 'NFOUND W "No results found! for DFN "_DFN,!! QUIT
|
---|
| 89 | ;
|
---|
| 90 | W "Patient: DFN: "_DFN_"; "_PXRMAGE_" yo; "_PXRMSEX,!
|
---|
| 91 | ;
|
---|
| 92 | N I F I=1:1:NFOUND D
|
---|
| 93 | . W "NFOUND: "_NFOUND,!
|
---|
| 94 | . W "TEST: "_TEST(I),!
|
---|
| 95 | . W "DATE: "_DATE(I),!
|
---|
| 96 | . W "TEXT: "_TEXT(I),!
|
---|
| 97 | . W "DATA VALUE: "_DATA(I,"VALUE"),!
|
---|
| 98 | . W "DATA BMI%ILE: "_DATA(I,"BMI%ILE"),!
|
---|
| 99 | . W "DATA BMI: "_DATA(I,"BMI"),!
|
---|
| 100 | . W !
|
---|
| 101 | QUIT
|
---|
| 102 | ;
|
---|
| 103 | ; Private below as well.
|
---|
| 104 | TEST N DFN S DFN=0 F S DFN=$O(^DPT(DFN)) Q:'DFN D TPBMI(DFN) ; One liner test
|
---|
| 105 | QUIT
|
---|
| 106 | ]]>
|
---|
| 107 | </CODE>
|
---|
| 108 | </M_ROUTINE>
|
---|
| 109 | <FILEMAN_FILE>
|
---|
| 110 | <FILE_NAME>REMINDER COMPUTED FINDINGS</FILE_NAME>
|
---|
| 111 | <FILE_NUMBER>811.4</FILE_NUMBER>
|
---|
| 112 | <POINT_01>VW-BMI-PERCENTILE</POINT_01>
|
---|
| 113 | <INTERNAL_ENTRY_NUMBER>93</INTERNAL_ENTRY_NUMBER>
|
---|
| 114 | <CHECKSUM>1440960318</CHECKSUM>
|
---|
| 115 | <SELECTED>YES</SELECTED>
|
---|
| 116 | <FILEMAN_FDA>
|
---|
| 117 | <![CDATA[
|
---|
| 118 | 811.4;+93,;.01~VW-BMI-PERCENTILE
|
---|
| 119 | 811.4;+93,;.02~C0QRMBMI
|
---|
| 120 | 811.4;+93,;.03~PBMI
|
---|
| 121 | 811.4;+93,;.04~Body Mass Index Percentile
|
---|
| 122 | 811.4;+93,;1~WP-start~15
|
---|
| 123 | The VW-BMI-PERCENTILE computed finding calculates the patient's body mass
|
---|
| 124 | index percentile. The value returned, which can be used in the CONDITION
|
---|
| 125 | field of the findings, is the body mass index percentile. It only works
|
---|
| 126 | for patients who are 18 years of age or less. Patients over 18 get a
|
---|
| 127 | result of "Not Found", even if a BMI can be calculated.
|
---|
| 128 |
|
---|
| 129 | An example of using the VW-BMI-PERCENTILE computed finding:
|
---|
| 130 | 1) Create a finding in a reminder that is the VW-BMI-PERCENTILE computed
|
---|
| 131 | finding;
|
---|
| 132 | 2) Add logic in the CONDITION field to check for a particular BMI
|
---|
| 133 | Percentile value: "I V>25";
|
---|
| 134 | 3) This finding will be evaluated to true for patients with a BMI
|
---|
| 135 | percentile that is greater than 25.
|
---|
| 136 |
|
---|
| 137 | This is a multi-occurrence computed finding.
|
---|
| 138 | 811.4;+93,;5~MULTIPLE
|
---|
| 139 | 811.4;+93,;100~LOCAL
|
---|
| 140 | 811.42;+94,+93,;.01~07/20/2012@16:15:32
|
---|
| 141 | 811.42;+94,+93,;2~WP-start~1
|
---|
| 142 | Exchange Stub
|
---|
| 143 | ]]>
|
---|
| 144 | </FILEMAN_FDA>
|
---|
| 145 | <IEN_ROOT>
|
---|
| 146 | <![CDATA[
|
---|
| 147 | 94^1
|
---|
| 148 | ]]>
|
---|
| 149 | </IEN_ROOT>
|
---|
| 150 | </FILEMAN_FILE>
|
---|
| 151 | <INDEX>
|
---|
| 152 | <NUMBER_OF_COMPONENTS>2</NUMBER_OF_COMPONENTS>
|
---|
| 153 | <COMPONENT>
|
---|
| 154 | <M_ROUTINE_START>34</M_ROUTINE_START>
|
---|
| 155 | <ROUTINE_CODE_END>105</ROUTINE_CODE_END>
|
---|
| 156 | <ROUTINE_CODE_START>39</ROUTINE_CODE_START>
|
---|
| 157 | </COMPONENT>
|
---|
| 158 | <COMPONENT>
|
---|
| 159 | <FDA_END>142</FDA_END>
|
---|
| 160 | <FDA_START>118</FDA_START>
|
---|
| 161 | <FILE_START>109</FILE_START>
|
---|
| 162 | <IEN_ROOT_END>147</IEN_ROOT_END>
|
---|
| 163 | <IEN_ROOT_START>147</IEN_ROOT_START>
|
---|
| 164 | </COMPONENT>
|
---|
| 165 | </INDEX>
|
---|
| 166 | </REMINDER_EXCHANGE_FILE_ENTRY>
|
---|