I just wanted to do a quick sanity check, since I haven't done too
much production work with the new Report Writer.

I created a ReportListener that would highlight certain fields, and
then I subclassed it for the particular report I'm working with at the
moment. I tagged the blood pressure fields with BP in the User field,
and LDL in User for those values. Then I ran the report with this RL.
It seems to work fine, but I just wanted to make sure I wasn't missing
something.

DEFINE CLASS ReportHighlight2 as ReportHighlight OF ReportHighlight.prg
        PROCEDURE EvaluateContents
                LPARAMETERS tnFRXRecno, toObjProperties

                DODEFAULT(tnFRXRecno, toObjProperties)
                                
                IF This.InGroupFooter
                        This.HighlightBPLDL(tnFRXRecno, toObjProperties)
                ENDIF
        ENDPROC
        
        PROCEDURE HighlightBPLDL
                LPARAMETERS tnFRXRecNo, toObjProperties         
                LOCAL lnLowPercent, lnHighPercent, lnOldDataSession
                
                lnOldDataSession = SET("Datasession")
                SET DATASESSION TO (This.FRXDataSession)
                SELECT FRX
                GO (tnFRXRecno)
                
                IF "BP"$user
                        WITH toObjProperties
                                .Reload = .T.
                                
                                DO CASE
                                        CASE VAL(pcBPSysVal) < _BPSYSLO
                                          AND VAL(pcBPDiaVal) < _BPDIALO
                                                .FillRed = 0
                                                .FillGreen = 255
                                                .FillBlue = 0
                                                .PenRed = 0
                                                .PenGreen = 0
                                                .PenBlue = 0
                                        CASE VAL(pcBPSysVal) < _BPSYSHI
                                         AND VAL(pcBPDiaVal) < _BPSYSHI
                                                .FillRed = 255
                                                .FillGreen = 255
                                                .FillBlue = 0
                                                .PenRed = 0
                                                .PenGreen = 0
                                                .PenBlue = 0
                                        OTHERWISE
                                                .FillRed = 255
                                                .FillGreen = 0
                                                .FillBlue = 0
                                                .PenRed = 255
                                                .PenGreen = 255
                                                .PenBlue = 255
                                ENDCASE
                        ENDWITH
                ENDIF
                
                IF "LDL"$user
                        WITH toObjProperties
                                .Reload = .T.
                                
                                DO CASE
                                        CASE VAL(pcBPLDLVal) < _LDLLO
                                                .FillRed = 0
                                                .FillGreen = 255
                                                .FillBlue = 0
                                                .PenRed = 0
                                                .PenGreen = 0
                                                .PenBlue = 0
                                        CASE VAL(pcBPLDLVal) < _LDLHI
                                                .FillRed = 255
                                                .FillGreen = 255
                                                .FillBlue = 0
                                                .PenRed = 0
                                                .PenGreen = 0
                                                .PenBlue = 0
                                        OTHERWISE
                                                .FillRed = 255
                                                .FillGreen = 0
                                                .FillBlue = 0
                                                .PenRed = 255
                                                .PenGreen = 255
                                                .PenBlue = 255
                                ENDCASE
                        ENDWITH
                ENDIF

                SET DATASESSION TO (lnOldDataSession)
        ENDPROC

ENDDEFINE

On an unrelated note, any thoughts on querying an EMR record which
could have multiple tables with multiple values, hence creating a
whole lot of records per patient observation? I'm currently handling
it as one really big join, and doing a UDF in the Detail Footer to
pull out the values I actually want, and one in the Patient Group
Footer to check values on the patient level. The counting is (mostly)
done by using report variables, that store a 0 or 1 to the variable
(depending on whether it's the right value and whether it's been set
before) and summing at the end.


_______________________________________________
Post Messages to: ProFox@leafe.com
Subscription Maintenance: http://leafe.com/mailman/listinfo/profox
OT-free version of this list: http://leafe.com/mailman/listinfo/profoxtech
Searchable Archive: http://leafe.com/archives/search/profox
This message: http://leafe.com/archives/byMID/profox/[EMAIL PROTECTED]
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to