source: quality/tags/mu/PRD/VW-BMI-PERCENTILE.PRD@ 1494

Last change on this file since 1494 was 1494, checked in by Sam Habiel, 12 years ago

BMI Percentile Computed Finding

File size: 5.4 KB
Line 
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[
12The VW-BMI-PERCENTILE computed finding calculates the patient's body mass
13index percentile. The value returned, which can be used in the CONDITION
14field of the findings, is the body mass index percentile. It only works
15for patients who are 18 years of age or less. Patients over 18 get a
16result of "Not Found", even if a BMI can be calculated.
17
18An example of using the VW-BMI-PERCENTILE computed finding:
19 1) Create a finding in a reminder that is the VW-BMI-PERCENTILE computed
20finding;
21 2) Add logic in the CONDITION field to check for a particular BMI
22Percentile value: "I V>25";
23 3) This finding will be evaluated to true for patients with a BMI
24percentile that is greater than 25.
25
26This 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[
39C0QRMBMI ; 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 ;
48PBMI(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 ;
82TPBMI(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.
104TEST 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[
118811.4;+93,;.01~VW-BMI-PERCENTILE
119811.4;+93,;.02~C0QRMBMI
120811.4;+93,;.03~PBMI
121811.4;+93,;.04~Body Mass Index Percentile
122811.4;+93,;1~WP-start~15
123The VW-BMI-PERCENTILE computed finding calculates the patient's body mass
124index percentile. The value returned, which can be used in the CONDITION
125field of the findings, is the body mass index percentile. It only works
126for patients who are 18 years of age or less. Patients over 18 get a
127result of "Not Found", even if a BMI can be calculated.
128
129An example of using the VW-BMI-PERCENTILE computed finding:
130 1) Create a finding in a reminder that is the VW-BMI-PERCENTILE computed
131finding;
132 2) Add logic in the CONDITION field to check for a particular BMI
133Percentile value: "I V>25";
134 3) This finding will be evaluated to true for patients with a BMI
135percentile that is greater than 25.
136
137This is a multi-occurrence computed finding.
138811.4;+93,;5~MULTIPLE
139811.4;+93,;100~LOCAL
140811.42;+94,+93,;.01~07/20/2012@16:15:32
141811.42;+94,+93,;2~WP-start~1
142Exchange Stub
143]]>
144</FILEMAN_FDA>
145<IEN_ROOT>
146<![CDATA[
14794^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>
Note: See TracBrowser for help on using the repository browser.