Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: PXRMEDU

PXRMEDU.m

Go to the documentation of this file.
PXRMEDU ;SLC/PKR - Handle education findings. ;04/15/2022
 ;;2.0;CLINICAL REMINDERS;**42,65**;Feb 04, 2005;Build 438
 ;
 ;=========================================================
EVALFI(DFN,DEFARR,ENODE,FIEVAL) ;Evaluate education findings.
 D EVALFI^PXRMINDX(DFN,.DEFARR,ENODE,.FIEVAL)
 Q
 ;
 ;=========================================================
EVALPL(FINDPA,ENODE,TERMARR,PLIST) ;Evaluate education term findings
 ;for patient lists.
 D EVALPL^PXRMINDL(.FINDPA,ENODE,.TERMARR,PLIST)
 Q
 ;
 ;=========================================================
EVALTERM(DFN,FINDPA,ENODE,TERMARR,TFIEVAL) ;Evaluate education terms.
 D EVALTERM^PXRMINDX(DFN,.FINDPA,ENODE,.TERMARR,.TFIEVAL)
 Q
 ;
 ;=========================================================
GETDATA(DAS,FIEVT) ;Return data, for a specified V Patient ED entry.
 ;DBIA #4250
 D VPEDU^PXPXRM(DAS,.FIEVT)
 Q
 ;
 ;=========================================================
MHVOUT(INDENT,IFIEVAL,NLINES,TEXT) ;Produce the MHV output.
 N CAPTION,EDU220,EM,FIEN,IND,JND,MAGNITUDE,NAME,NOUT,PNAME,LOU,TEMP,TEXTOUT
 N UCUMIEN,UCUMDISPLAY,UCUMFIELD,UNITS,VDATE
 S FIEN=$P(IFIEVAL("FINDING"),";",1)
 S TEMP=^AUTTEDT(FIEN,0)
 S PNAME=$P(TEMP,U,4)
 I PNAME="" S PNAME=$P(TEMP,U,1)
 S NAME="Education Topic: "_PNAME_" = "
 S EDU220=$G(^AUTTEDT(FIEN,220))
 S UCUMIEN=$P(EDU220,U,4)
 I UCUMIEN'="" D
 . S UCUMDISPLAY=$P(EDU220,U,6)
 . I UCUMDISPLAY="N" S UNITS="" Q
 . S UCUMFIELD=$S(UCUMDISPLAY="C":"UCUM CODE",1:"DESCRIPTION")
 . S UNITS=$$UCUMFIELDS^PXRMUCUM(UCUMIEN,UCUMFIELD)
 E  S UNITS=""
 S IND=0
 F  S IND=+$O(IFIEVAL(IND)) Q:IND=0  D
 . S LOU=$G(IFIEVAL(IND,"VALUE"))
 . I LOU'="" S LOU=$$EXTERNAL^DILFD(9000010.16,.06,"",LOU,.EM)
 . S VDATE=IFIEVAL(IND,"DATE")
 . S TEMP=NAME_LOU_" ("_$$EDATE^PXRMDATE(VDATE)_")"
 . D FORMATS^PXRMTEXT(INDENT+2,PXRMRM,TEMP,.NOUT,.TEXTOUT)
 . F JND=1:1:NOUT S NLINES=NLINES+1,TEXT(NLINES)=TEXTOUT(JND)
 . I IFIEVAL(IND,"MEASUREMENT")'="" D
 .. S MAGNITUDE=$P(IFIEVAL(IND,"MEASUREMENT"),U,1)
 .. I MAGNITUDE="" Q
 .. S NLINES=NLINES+1
 .. S CAPTION=$S(UNITS="":"Magnitude: ",1:"Measurement: ")
 .. S TEXT(NLINES)=$$INSCHR^PXRMEXLC(INDENT+1," ")_CAPTION_MAGNITUDE
 .. I UNITS'="" S TEXT(NLINES)=TEXT(NLINES)_" "_UNITS
 S NLINES=NLINES+1,TEXT(NLINES)=""
 Q
 ;
 ;=========================================================
OUTPUT(INDENT,IFIEVAL,NLINES,TEXT) ;Produce the clinical
 ;maintenance output.
 N CAPTION,EDU220,EM,FIEN,IND,JND,MAGNITUDE,NOUT,PNAME,LOU,TEMP,TEXTOUT
 N UCUMIEN,UCUMDISPLAY,UCUMFIELD,UNITS,VDATE
 S FIEN=$P(IFIEVAL("FINDING"),";",1)
 S TEMP=^AUTTEDT(FIEN,0)
 S PNAME=$P(TEMP,U,4)
 I PNAME="" S PNAME=$P(TEMP,U,1)
 S EDU220=$G(^AUTTEDT(FIEN,220))
 S UCUMIEN=$P(EDU220,U,4)
 I UCUMIEN'="" D
 . S UCUMDISPLAY=$P(EDU220,U,6)
 . I UCUMDISPLAY="N" S UNITS="" Q
 . S UCUMFIELD=$S(UCUMDISPLAY="C":"UCUM CODE",1:"DESCRIPTION")
 . S UNITS=$$UCUMFIELDS^PXRMUCUM(UCUMIEN,UCUMFIELD)
 E  S UNITS=""
 I INDENT+17+$L(PNAME)<81 D
 . S NLINES=NLINES+1
 . S TEXT(NLINES)=$$INSCHR^PXRMEXLC(INDENT," ")_"Education Topic: "_PNAME
 E  D
 . N COL1W,COL2W,FMTSTR
 . S TEMP="Education Topic:^"_PNAME
 . S COL1W=INDENT+16,COL2W=80-COL1W
 . S FMTSTR=COL1W_"R1^"_COL2W_"L"
 . D COLFMT^PXRMTEXT(FMTSTR,TEMP," ",.NOUT,.TEXTOUT)
 . F JND=1:1:NOUT S NLINES=NLINES+1,TEXT(NLINES)=TEXTOUT(JND)
 S IND=0
 F  S IND=+$O(IFIEVAL(IND)) Q:IND=0  D
 . S VDATE=IFIEVAL(IND,"DATE")
 . S TEMP=$$EDATE^PXRMDATE(VDATE)
 . S LOU=$G(IFIEVAL(IND,"VALUE"))
 . I LOU'="" D
 .. S TEMP=TEMP_" level of understanding - "
 .. S TEMP=TEMP_$$EXTERNAL^DILFD(9000010.16,.06,"",LOU,.EM)
 . D FORMATS^PXRMTEXT(INDENT+2,PXRMRM,TEMP,.NOUT,.TEXTOUT)
 . F JND=1:1:NOUT S NLINES=NLINES+1,TEXT(NLINES)=TEXTOUT(JND)
 . I IFIEVAL(IND,"MEASUREMENT")'="" D
 .. S MAGNITUDE=$P(IFIEVAL(IND,"MEASUREMENT"),U,1)
 .. I MAGNITUDE="" Q
 .. S NLINES=NLINES+1
 .. S CAPTION=$S(UNITS="":"Magnitude: ",1:"Measurement: ")
 .. S TEXT(NLINES)=$$INSCHR^PXRMEXLC(INDENT+1," ")_CAPTION_MAGNITUDE
 .. I UNITS'="" S TEXT(NLINES)=TEXT(NLINES)_" "_UNITS
 . I IFIEVAL(IND,"COMMENTS")'="" D
 .. S TEMP="Comments: "_IFIEVAL(IND,"COMMENTS")
 .. D FORMATS^PXRMTEXT(INDENT+3,PXRMRM,TEMP,.NOUT,.TEXTOUT)
 .. F JND=1:1:NOUT S NLINES=NLINES+1,TEXT(NLINES)=TEXTOUT(JND)
 S NLINES=NLINES+1,TEXT(NLINES)=""
 Q
 ;