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>
|
---|