- PXRMEXAM ;SLC/PKR - Handle examination findings. ;04/15/2022
- ;;2.0;CLINICAL REMINDERS;**42,65**;Feb 04, 2005;Build 438
- ;
- ;=============================================================
- EVALFI(DFN,DEFARR,ENODE,FIEVAL) ;Evaluate examination findings.
- D EVALFI^PXRMINDX(DFN,.DEFARR,ENODE,.FIEVAL)
- Q
- ;
- ;=============================================================
- EVALPL(FINDPA,ENODE,TERMARR,PLIST) ;Evaluate examination term findings
- ;for patient lists.
- D EVALPL^PXRMINDL(.FINDPA,ENODE,.TERMARR,PLIST)
- Q
- ;
- ;=============================================================
- EVALTERM(DFN,FINDPA,ENODE,TERMARR,TFIEVAL) ;Evaluate examination terms.
- D EVALTERM^PXRMINDX(DFN,.FINDPA,ENODE,.TERMARR,.TFIEVAL)
- Q
- ;
- ;=============================================================
- GETDATA(DAS,FIEVT) ;Return data, for a specified V Exam entry.
- ;DBIA #4250.
- D VXAM^PXPXRM(DAS,.FIEVT)
- Q
- ;
- ;=============================================================
- MHVOUT(INDENT,IFIEVAL,NLINES,TEXT) ;Produce the MHV output.
- N CAPTION,EM,EXAM220,FIEN,IND,JND,MAGNITUDE,NAME,NOUT,PNAME,RESULT,TEMP,TEXTOUT
- N UCUMIEN,UCUMDISPLAY,UCUMFIELD,UNITS,VDATE
- S FIEN=$P(IFIEVAL("FINDING"),";",1)
- S PNAME=$P($G(^AUTTEXAM(FIEN,200)),U,1)
- I PNAME="" S PNAME=$P(^AUTTEXAM(FIEN,0),U,1)
- S NAME=$$INSCHR^PXRMEXLC(INDENT," ")_"Exam: "_PNAME_" = "
- S EXAM220=$G(^AUTTEXAM(FIEN,220))
- S UCUMIEN=$P(EXAM220,U,4)
- I UCUMIEN'="" D
- . S UCUMDISPLAY=$P(EXAM220,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 RESULT=$G(IFIEVAL(IND,"RESULT"))
- . I RESULT'="" S RESULT=$$EXTERNAL^DILFD(9000010.13,.04,"",RESULT,.EM)
- . S VDATE=IFIEVAL(IND,"DATE")
- . S TEMP=NAME_RESULT_" ("_$$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,EM,EXAM220,FIEN,IND,JND,MAGNITUDE,NOUT,PNAME,RESULT,TEMP,TEXTOUT
- N UCUMIEN,UCUMDISPLAY,UCUMFIELD,UNITS,VDATE
- S FIEN=$P(IFIEVAL("FINDING"),";",1)
- S PNAME=$P($G(^AUTTEXAM(FIEN,200)),U,1)
- I PNAME="" S PNAME=$P(^AUTTEXAM(FIEN,0),U,1)
- S EXAM220=$G(^AUTTEXAM(FIEN,220))
- S UCUMIEN=$P(EXAM220,U,4)
- I UCUMIEN'="" D
- . S UCUMDISPLAY=$P(EXAM220,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+6+$L(PNAME)<81 D
- . S NLINES=NLINES+1
- . S TEXT(NLINES)=$$INSCHR^PXRMEXLC(INDENT," ")_"Exam: "_PNAME
- E D
- . N COL1W,COL2W,FMTSTR
- . S TEMP="Exam:^"_PNAME
- . S COL1W=INDENT+5,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 RESULT=$G(IFIEVAL(IND,"RESULT"))
- . I RESULT'="" D
- .. S TEMP=TEMP_" result - "
- .. S TEMP=TEMP_$$EXTERNAL^DILFD(9000010.13,.04,"",RESULT,.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
- ;
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPXRMEXAM 4383 printed Mar 13, 2025@20:49:27 Page 2
- PXRMEXAM ;SLC/PKR - Handle examination findings. ;04/15/2022
- +1 ;;2.0;CLINICAL REMINDERS;**42,65**;Feb 04, 2005;Build 438
- +2 ;
- +3 ;=============================================================
- EVALFI(DFN,DEFARR,ENODE,FIEVAL) ;Evaluate examination findings.
- +1 DO EVALFI^PXRMINDX(DFN,.DEFARR,ENODE,.FIEVAL)
- +2 QUIT
- +3 ;
- +4 ;=============================================================
- EVALPL(FINDPA,ENODE,TERMARR,PLIST) ;Evaluate examination term findings
- +1 ;for patient lists.
- +2 DO EVALPL^PXRMINDL(.FINDPA,ENODE,.TERMARR,PLIST)
- +3 QUIT
- +4 ;
- +5 ;=============================================================
- EVALTERM(DFN,FINDPA,ENODE,TERMARR,TFIEVAL) ;Evaluate examination terms.
- +1 DO EVALTERM^PXRMINDX(DFN,.FINDPA,ENODE,.TERMARR,.TFIEVAL)
- +2 QUIT
- +3 ;
- +4 ;=============================================================
- GETDATA(DAS,FIEVT) ;Return data, for a specified V Exam entry.
- +1 ;DBIA #4250.
- +2 DO VXAM^PXPXRM(DAS,.FIEVT)
- +3 QUIT
- +4 ;
- +5 ;=============================================================
- MHVOUT(INDENT,IFIEVAL,NLINES,TEXT) ;Produce the MHV output.
- +1 NEW CAPTION,EM,EXAM220,FIEN,IND,JND,MAGNITUDE,NAME,NOUT,PNAME,RESULT,TEMP,TEXTOUT
- +2 NEW UCUMIEN,UCUMDISPLAY,UCUMFIELD,UNITS,VDATE
- +3 SET FIEN=$PIECE(IFIEVAL("FINDING"),";",1)
- +4 SET PNAME=$PIECE($GET(^AUTTEXAM(FIEN,200)),U,1)
- +5 IF PNAME=""
- SET PNAME=$PIECE(^AUTTEXAM(FIEN,0),U,1)
- +6 SET NAME=$$INSCHR^PXRMEXLC(INDENT," ")_"Exam: "_PNAME_" = "
- +7 SET EXAM220=$GET(^AUTTEXAM(FIEN,220))
- +8 SET UCUMIEN=$PIECE(EXAM220,U,4)
- +9 IF UCUMIEN'=""
- Begin DoDot:1
- +10 SET UCUMDISPLAY=$PIECE(EXAM220,U,6)
- +11 IF UCUMDISPLAY="N"
- SET UNITS=""
- QUIT
- +12 SET UCUMFIELD=$SELECT(UCUMDISPLAY="C":"UCUM CODE",1:"DESCRIPTION")
- +13 SET UNITS=$$UCUMFIELDS^PXRMUCUM(UCUMIEN,UCUMFIELD)
- End DoDot:1
- +14 IF '$TEST
- SET UNITS=""
- +15 SET IND=0
- +16 FOR
- SET IND=+$ORDER(IFIEVAL(IND))
- if IND=0
- QUIT
- Begin DoDot:1
- +17 SET RESULT=$GET(IFIEVAL(IND,"RESULT"))
- +18 IF RESULT'=""
- SET RESULT=$$EXTERNAL^DILFD(9000010.13,.04,"",RESULT,.EM)
- +19 SET VDATE=IFIEVAL(IND,"DATE")
- +20 SET TEMP=NAME_RESULT_" ("_$$EDATE^PXRMDATE(VDATE)_")"
- +21 DO FORMATS^PXRMTEXT(INDENT+2,PXRMRM,TEMP,.NOUT,.TEXTOUT)
- +22 FOR JND=1:1:NOUT
- SET NLINES=NLINES+1
- SET TEXT(NLINES)=TEXTOUT(JND)
- +23 IF IFIEVAL(IND,"MEASUREMENT")'=""
- Begin DoDot:2
- +24 SET MAGNITUDE=$PIECE(IFIEVAL(IND,"MEASUREMENT"),U,1)
- +25 IF MAGNITUDE=""
- QUIT
- +26 SET NLINES=NLINES+1
- +27 SET CAPTION=$SELECT(UNITS="":"Magnitude: ",1:"Measurement: ")
- +28 SET TEXT(NLINES)=$$INSCHR^PXRMEXLC(INDENT+1," ")_CAPTION_MAGNITUDE
- +29 IF UNITS'=""
- SET TEXT(NLINES)=TEXT(NLINES)_" "_UNITS
- End DoDot:2
- End DoDot:1
- +30 SET NLINES=NLINES+1
- SET TEXT(NLINES)=""
- +31 QUIT
- +32 ;
- +33 ;=============================================================
- OUTPUT(INDENT,IFIEVAL,NLINES,TEXT) ;Produce the clinical
- +1 ;maintenance output.
- +2 NEW CAPTION,EM,EXAM220,FIEN,IND,JND,MAGNITUDE,NOUT,PNAME,RESULT,TEMP,TEXTOUT
- +3 NEW UCUMIEN,UCUMDISPLAY,UCUMFIELD,UNITS,VDATE
- +4 SET FIEN=$PIECE(IFIEVAL("FINDING"),";",1)
- +5 SET PNAME=$PIECE($GET(^AUTTEXAM(FIEN,200)),U,1)
- +6 IF PNAME=""
- SET PNAME=$PIECE(^AUTTEXAM(FIEN,0),U,1)
- +7 SET EXAM220=$GET(^AUTTEXAM(FIEN,220))
- +8 SET UCUMIEN=$PIECE(EXAM220,U,4)
- +9 IF UCUMIEN'=""
- Begin DoDot:1
- +10 SET UCUMDISPLAY=$PIECE(EXAM220,U,6)
- +11 IF UCUMDISPLAY="N"
- SET UNITS=""
- QUIT
- +12 SET UCUMFIELD=$SELECT(UCUMDISPLAY="C":"UCUM CODE",1:"DESCRIPTION")
- +13 SET UNITS=$$UCUMFIELDS^PXRMUCUM(UCUMIEN,UCUMFIELD)
- End DoDot:1
- +14 IF '$TEST
- SET UNITS=""
- +15 IF INDENT+6+$LENGTH(PNAME)<81
- Begin DoDot:1
- +16 SET NLINES=NLINES+1
- +17 SET TEXT(NLINES)=$$INSCHR^PXRMEXLC(INDENT," ")_"Exam: "_PNAME
- End DoDot:1
- +18 IF '$TEST
- Begin DoDot:1
- +19 NEW COL1W,COL2W,FMTSTR
- +20 SET TEMP="Exam:^"_PNAME
- +21 SET COL1W=INDENT+5
- SET COL2W=80-COL1W
- +22 SET FMTSTR=COL1W_"R1^"_COL2W_"L"
- +23 DO COLFMT^PXRMTEXT(FMTSTR,TEMP," ",.NOUT,.TEXTOUT)
- +24 FOR JND=1:1:NOUT
- SET NLINES=NLINES+1
- SET TEXT(NLINES)=TEXTOUT(JND)
- End DoDot:1
- +25 SET IND=0
- +26 FOR
- SET IND=+$ORDER(IFIEVAL(IND))
- if IND=0
- QUIT
- Begin DoDot:1
- +27 SET VDATE=IFIEVAL(IND,"DATE")
- +28 SET TEMP=$$EDATE^PXRMDATE(VDATE)
- +29 SET RESULT=$GET(IFIEVAL(IND,"RESULT"))
- +30 IF RESULT'=""
- Begin DoDot:2
- +31 SET TEMP=TEMP_" result - "
- +32 SET TEMP=TEMP_$$EXTERNAL^DILFD(9000010.13,.04,"",RESULT,.EM)
- End DoDot:2
- +33 DO FORMATS^PXRMTEXT(INDENT+2,PXRMRM,TEMP,.NOUT,.TEXTOUT)
- +34 FOR JND=1:1:NOUT
- SET NLINES=NLINES+1
- SET TEXT(NLINES)=TEXTOUT(JND)
- +35 IF IFIEVAL(IND,"MEASUREMENT")'=""
- Begin DoDot:2
- +36 SET MAGNITUDE=$PIECE(IFIEVAL(IND,"MEASUREMENT"),U,1)
- +37 IF MAGNITUDE=""
- QUIT
- +38 SET NLINES=NLINES+1
- +39 SET CAPTION=$SELECT(UNITS="":"Magnitude: ",1:"Measurement: ")
- +40 SET TEXT(NLINES)=$$INSCHR^PXRMEXLC(INDENT+1," ")_CAPTION_MAGNITUDE
- +41 IF UNITS'=""
- SET TEXT(NLINES)=TEXT(NLINES)_" "_UNITS
- End DoDot:2
- +42 IF IFIEVAL(IND,"COMMENTS")'=""
- Begin DoDot:2
- +43 SET TEMP="Comments: "_IFIEVAL(IND,"COMMENTS")
- +44 DO FORMATS^PXRMTEXT(INDENT+3,PXRMRM,TEMP,.NOUT,.TEXTOUT)
- +45 FOR JND=1:1:NOUT
- SET NLINES=NLINES+1
- SET TEXT(NLINES)=TEXTOUT(JND)
- End DoDot:2
- End DoDot:1
- +46 SET NLINES=NLINES+1
- SET TEXT(NLINES)=""
- +47 QUIT
- +48 ;