| [623] | 1 | GMPLDISP ; SLC/MKB -- Problem List detailed display ; 04/15/2002
 | 
|---|
 | 2 |  ;;2.0;Problem List;**21,26**;Aug 25, 1994
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 |  ; External References
 | 
|---|
 | 5 |  ;   DBIA  3106  ^DIC(49
 | 
|---|
 | 6 |  ;   DBIA 10082  ^ICD9( file 80
 | 
|---|
 | 7 |  ;   DBIA 10040  ^SC(  file 44
 | 
|---|
 | 8 |  ;   DBIA 10060  ^VA(200
 | 
|---|
 | 9 |  ;   DBIA 10116  $$SETSTR^VALM1
 | 
|---|
 | 10 |  ;   DBIA 10117  CLEAN^VALM10
 | 
|---|
 | 11 |  ;   DBIA 10117  CNTRL^VALM10
 | 
|---|
 | 12 |  ;   DBIA 10103  $$FMTE^XLFDT
 | 
|---|
 | 13 |  ;   DBIA 10103  $$HTFM^XLFDT
 | 
|---|
 | 14 |  ;   DBIA 10104  $$REPEAT^XLFSTR
 | 
|---|
 | 15 |  ;                      
 | 
|---|
 | 16 | EN ; Init Variables (need GMPLSEL,GMPLNO) and List Array
 | 
|---|
 | 17 |  G:'$D(GMPLSEL) ERROR G:'$G(GMPLNO) ERROR
 | 
|---|
 | 18 |  S GMPI=+$G(GMPI)+1 I GMPI>GMPLNO D  Q
 | 
|---|
 | 19 |  . W !!,"There are no more problems that have been selected to view!",! S VALMBCK="" H 2
 | 
|---|
 | 20 |  S GMPLNUM=$P(GMPLSEL,",",GMPI) G:GMPLNUM'>0 ERROR
 | 
|---|
 | 21 |  S GMPIFN=$P($G(^TMP("GMPLIDX",$J,+GMPLNUM)),U,2) G:GMPIFN'>0 ERROR
 | 
|---|
 | 22 |  W !!,"Retrieving current data for problem #"_GMPLNUM_" ...",!
 | 
|---|
 | 23 |  ;                        
 | 
|---|
 | 24 | PROB ; Display problem GMPIFN
 | 
|---|
 | 25 |  N LINE,STR,I,TEXT,NOTE,GMPL0,GMPL1,X,Y,IDT,FAC,AIFN,SP,LCNT,NIFN
 | 
|---|
 | 26 |  G:'$G(GMPIFN) ERROR D CLEAN^VALM10
 | 
|---|
 | 27 |  S GMPL0=$G(^AUPNPROB(GMPIFN,0)),GMPL1=$G(^(1)),LCNT=1,SP=""
 | 
|---|
 | 28 |  F I=11,12,13,15,16 S:+$P(GMPL1,U,I) SP=SP_$S(I=11:"AGENT ORANGE",I=12:"RADIATION",I=13:"ENV CONTAMINANTS",I=15:"HEAD/NECK CANCER",1:"MIL SEXUAL TRAUMA")_U
 | 
|---|
 | 29 |  F  Q:$E(SP,$L(SP))'="^"  S SP=$E(SP,1,($L(SP)-1))
 | 
|---|
 | 30 |  D WRAP^GMPLX($$PROBTEXT^GMPLX(GMPIFN),65,.TEXT)
 | 
|---|
 | 31 |  S GMPDT(LCNT,0)="  Problem: "_TEXT(1)
 | 
|---|
 | 32 |  I TEXT>1 F I=2:1:TEXT S LCNT=LCNT+1,GMPDT(LCNT,0)=TEXT(I)
 | 
|---|
 | 33 |  S LCNT=LCNT+1,GMPDT(LCNT,0)="       "
 | 
|---|
 | 34 | PR1 ;   Onset
 | 
|---|
 | 35 |  ;   SC Condition
 | 
|---|
 | 36 |  ;   Status
 | 
|---|
 | 37 |  ;   Exposure
 | 
|---|
 | 38 |  ;   Provider
 | 
|---|
 | 39 |  ;   Service/Clinic
 | 
|---|
 | 40 |  S LINE="    Onset: "_$S($P(GMPL0,U,13):$$EXTDT^GMPLX($P(GMPL0,U,13)),1:"date unknown"),STR=""
 | 
|---|
 | 41 |  S:GMPVA STR="SC Condition: "_$S(+$P(GMPL1,U,10):"YES",$P(GMPL1,U,10)=0:"NO",1:"unknown")
 | 
|---|
 | 42 |  S LINE=$$SETSTR^VALM1(STR,LINE,49,30),LCNT=LCNT+1,GMPDT(LCNT,0)=LINE
 | 
|---|
 | 43 |  S X=$P(GMPL0,U,12),LINE="   Status: "_$S(X="A":"ACTIVE",1:"INACTIVE")
 | 
|---|
 | 44 |  I X="A",$L($P(GMPL1,U,14)) S LINE=LINE_"/"_$S($P(GMPL1,U,14)="A":"ACUTE",1:"CHRONIC")
 | 
|---|
 | 45 |  I X="I",$P(GMPL1,U,7) S LINE=LINE_", Resolved "_$$EXTDT^GMPLX($P(GMPL1,U,7))
 | 
|---|
 | 46 |  S STR="",LCNT=LCNT+1
 | 
|---|
 | 47 |  S:GMPVA STR="    Exposure: "_$S('$L(SP):"none",1:$P(SP,U))
 | 
|---|
 | 48 |  S LINE=$$SETSTR^VALM1(STR,LINE,49,30),GMPDT(LCNT,0)=LINE
 | 
|---|
 | 49 |  S LINE=" Provider: "_$P($G(^VA(200,+$P(GMPL1,U,5),0)),U),LCNT=LCNT+1,STR=""
 | 
|---|
 | 50 |  I GMPVA,$L(SP,U)>1 S STR=$P(SP,U,2)
 | 
|---|
 | 51 |  S LINE=$$SETSTR^VALM1(STR,LINE,63,16),GMPDT(LCNT,0)=LINE
 | 
|---|
 | 52 |  I $E(GMPLVIEW("VIEW"))="S" S LINE="  Service: "_$P($G(^DIC(49,+$P(GMPL1,U,6),0)),U)
 | 
|---|
 | 53 |  E  S LINE="   Clinic: "_$P($G(^SC(+$P(GMPL1,U,8),0)),U)
 | 
|---|
 | 54 |  S LCNT=LCNT+1,STR="" I GMPVA,$L(SP,U)>2 S STR=$P(SP,U,3)
 | 
|---|
 | 55 |  S LINE=$$SETSTR^VALM1(STR,LINE,63,16),GMPDT(LCNT,0)=LINE
 | 
|---|
 | 56 |  S LCNT=LCNT+1,GMPDT(LCNT,0)="       "
 | 
|---|
 | 57 | PR2 ;   Recorded
 | 
|---|
 | 58 |  ;   Entered
 | 
|---|
 | 59 |  ;   Provider Narrative
 | 
|---|
 | 60 |  ;   ICD code
 | 
|---|
 | 61 |  S LINE=" Recorded: "_$S($P(GMPL1,U,9):$$EXTDT^GMPLX($P(GMPL1,U,9)),1:"date unknown")
 | 
|---|
 | 62 |  S:$P(GMPL1,U,4) LINE=LINE_", by "_$P($G(^VA(200,+$P(GMPL1,U,4),0)),U)
 | 
|---|
 | 63 |  S LCNT=LCNT+1,GMPDT(LCNT,0)=LINE
 | 
|---|
 | 64 |  S LINE="  Entered: "_$$EXTDT^GMPLX($P(GMPL0,U,8))
 | 
|---|
 | 65 |  S LINE=LINE_", by "_$P($G(^VA(200,+$P(GMPL1,U,3),0)),U),LCNT=LCNT+1
 | 
|---|
 | 66 |  S:GMPARAM("VER")&($P(GMPL1,U,2)="T") LINE=LINE_"  <unconfirmed>"
 | 
|---|
 | 67 |  S GMPDT(LCNT,0)=LINE
 | 
|---|
 | 68 |  S LINE=" ICD Code: "_$P($G(^ICD9(+GMPL0,0)),U),LCNT=LCNT+1,GMPDT(LCNT,0)=LINE
 | 
|---|
 | 69 |  S LCNT=LCNT+1,GMPDT(LCNT,0)="       "
 | 
|---|
 | 70 | PR3 ;   Comments
 | 
|---|
 | 71 |  S LCNT=LCNT+1,GMPDT(LCNT,0)="Comments:"
 | 
|---|
 | 72 |  D CNTRL^VALM10(LCNT,1,8,IOUON,IOUOFF)
 | 
|---|
 | 73 |  ;     By Facility
 | 
|---|
 | 74 |  F FAC=0:0 S FAC=$O(^AUPNPROB(GMPIFN,11,FAC)) Q:+FAC'>0  D
 | 
|---|
 | 75 |  . I 'FAC S LCNT=LCNT+1,GMPDT(LCNT,0)="   <None>" G PR4
 | 
|---|
 | 76 |  . F NIFN=0:0 S NIFN=$O(^AUPNPROB(GMPIFN,11,FAC,11,NIFN)) Q:+NIFN'>0  D
 | 
|---|
 | 77 |  . . S NOTE=$G(^AUPNPROB(GMPIFN,11,FAC,11,NIFN,0)) Q:NOTE=""
 | 
|---|
 | 78 |  . . S LINE=$J($$EXTDT^GMPLX($P(NOTE,U,5)),10)_": "_$P(NOTE,U,3)
 | 
|---|
 | 79 |  . . S LCNT=LCNT+1,GMPDT(LCNT,0)=LINE
 | 
|---|
 | 80 |  . . I $P(NOTE,U,6) S LINE="            "_$P($G(^VA(200,+$P(NOTE,U,6),0)),U),LCNT=LCNT+1,GMPDT(LCNT,0)=LINE
 | 
|---|
 | 81 |  S:'($G(NOTE)) LCNT=LCNT+1,GMPDT(LCNT,0)="   <None>"
 | 
|---|
 | 82 | PR4 ;   Audit Trail
 | 
|---|
 | 83 |  S LCNT=LCNT+1,GMPDT(LCNT,0)="       "
 | 
|---|
 | 84 |  S LCNT=LCNT+1,GMPDT(LCNT,0)="History:"
 | 
|---|
 | 85 |  D CNTRL^VALM10(LCNT,1,7,IOUON,IOUOFF)
 | 
|---|
 | 86 |  I '$D(^GMPL(125.8,"B",GMPIFN)) S LCNT=LCNT+1,GMPDT(LCNT,0)="   <No changes>" G PRQ
 | 
|---|
 | 87 |  F IDT=0:0 S IDT=$O(^GMPL(125.8,"AD",GMPIFN,IDT)) Q:IDT'>0  D
 | 
|---|
 | 88 |  . F AIFN=0:0 S AIFN=$O(^GMPL(125.8,"AD",GMPIFN,IDT,AIFN)) Q:AIFN'>0  D DT^GMPLHIST
 | 
|---|
 | 89 | PRQ ;   Header Node
 | 
|---|
 | 90 |  S VALMCNT=LCNT,GMPDT(0)=VALMCNT,VALMSG=$$MSG^GMPLX,VALMBG=1,VALMBCK="R"
 | 
|---|
 | 91 |  Q
 | 
|---|
 | 92 |  ;                     
 | 
|---|
 | 93 | HDR ; Header Code (uses GMPDFN, GMPIFN)
 | 
|---|
 | 94 |  N LASTMOD,PAT S PAT=$P(GMPDFN,U,2)_"  ("_$P(GMPDFN,U,3)_")"
 | 
|---|
 | 95 |  S LASTMOD=$S($G(GMPIFN):$P(^AUPNPROB(GMPIFN,0),U,3),1:$E($$HTFM^XLFDT($H),1,12))
 | 
|---|
 | 96 |  S LASTMOD="Last Updated: "_$$FMTE^XLFDT(LASTMOD)
 | 
|---|
 | 97 |  S VALMHDR(1)=PAT_$$REPEAT^XLFSTR(" ",(79-$L(PAT)-$L(LASTMOD)))_LASTMOD
 | 
|---|
 | 98 |  Q
 | 
|---|
 | 99 |  ;
 | 
|---|
 | 100 | HELP ; Help Code
 | 
|---|
 | 101 |  N X W !!?4,"You may view detailed information here on this problem;"
 | 
|---|
 | 102 |  W !?4,"more data may be available by entering 'Next Screen'."
 | 
|---|
 | 103 |  W !?4,"If you have selected multiple problems to view, you may"
 | 
|---|
 | 104 |  W !?4,"enter 'Continue to Next Selected Problem'; to return to"
 | 
|---|
 | 105 |  W !?4,"the patient's problem list, enter 'Quit to Problem List'."
 | 
|---|
 | 106 |  W !!,"Press <return> to continue ... " R X:DTIME
 | 
|---|
 | 107 |  S VALMSG=$$MSG^GMPLX,VALMBCK=$S(VALMCC:"",1:"R")
 | 
|---|
 | 108 |  Q
 | 
|---|
 | 109 |  ;
 | 
|---|
 | 110 | DEFLT() ; Default Action, using GMPI and GMPLNO
 | 
|---|
 | 111 |  I GMPI<GMPLNO Q "Continue to Next Selected Problem"
 | 
|---|
 | 112 |  Q "Quit to Problem List"
 | 
|---|
 | 113 |  ;
 | 
|---|
 | 114 | ERROR ; Error Message - drop into EXIT
 | 
|---|
 | 115 |  W !!,"ERROR -- Cannot continue ... Returning to Problem List.",!
 | 
|---|
 | 116 |  S VALMBCK="Q" H 1
 | 
|---|
 | 117 | EXIT ; Exit Code
 | 
|---|
 | 118 |  K GMPDT Q
 | 
|---|