| 1 | GMTSPXOP ; SLC/SBW,KER - PCE Outpatient Encounter comp ; 02/27/2002
 | 
|---|
| 2 |  ;;2.7;Health Summary;**8,10,28,37,47,49,76**;Oct 20, 1995
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; External References
 | 
|---|
| 5 |  ;    DBIA  1238  VISIT^PXRHS01
 | 
|---|
| 6 |  ;    DBIA  1996  $$MOD^ICPTMOD
 | 
|---|
| 7 |  ;    DBIA 10103  $$DT^XLFDT
 | 
|---|
| 8 |  ;    DBIA 10011  ^DIWP
 | 
|---|
| 9 |  ;                      
 | 
|---|
| 10 | PURPOSE ; Encounters with ICD9 and providers
 | 
|---|
| 11 |  N DTYPE S DTYPE="DP" D MAIN Q
 | 
|---|
| 12 | OUTPT ; Encounters with ICD9, CPT, and providers
 | 
|---|
| 13 |  N DTYPE S DTYPE="CDP" D MAIN Q
 | 
|---|
| 14 | MAIN ; Entry for Purpose of Visit and Outpatient Encounters
 | 
|---|
| 15 |  N GMTSIVD,GMTSDAT,GMTSDTU,GMTSOVT,GMTSLOC,DIWL,GMTAB,GMTSN,GMCKP,GMTSX
 | 
|---|
| 16 |  N GMTSITE,GMTSINS,GMTSEVT,GMTSHIS,GMTSICL,GMTSLOC,GMTSELIG,X,GMTSVDF
 | 
|---|
| 17 |  N GMTSCPTM,GMICL
 | 
|---|
| 18 |  ;                     
 | 
|---|
| 19 |  ; GMTSCPTM    Component uses CPT Modifiers 1 yes 0 no
 | 
|---|
| 20 |  S GMTSCPTM=+($$CPT^GMTSU(+($G(GMTSEGN)))) S:$G(GMPXCMOD)="N" GMTSCPTM=0
 | 
|---|
| 21 |  ; GMTSICL     # of blank left columns for support data of a visit
 | 
|---|
| 22 |  S GMTSICL=14
 | 
|---|
| 23 |  ; DIWL        Used in TXTFMT call & to print returned data
 | 
|---|
| 24 |  S DIWL=0
 | 
|---|
| 25 |  ; GMTAB       Used to offset data from TXTFMT call after 1st line
 | 
|---|
| 26 |  S GMTAB=2
 | 
|---|
| 27 |  ; GMTSOVT     This is the set of Service Categories for AICTSORE
 | 
|---|
| 28 |  ;                     
 | 
|---|
| 29 |  ;                A  Ambulatory
 | 
|---|
| 30 |  ;                I  Inpatient
 | 
|---|
| 31 |  ;                C  Chart Review
 | 
|---|
| 32 |  ;                T  Telecommunications
 | 
|---|
| 33 |  ;                S  Day Surgery
 | 
|---|
| 34 |  ;                O  Observation
 | 
|---|
| 35 |  ;                R  Nursing Home Encounters
 | 
|---|
| 36 |  ;                E  Event (Historical)
 | 
|---|
| 37 |  ;                  
 | 
|---|
| 38 |  ;            Note:  Hospitalization and Ancillary 
 | 
|---|
| 39 |  ;                   encounters are not included
 | 
|---|
| 40 |  S GMTSOVT="AICTSORE"
 | 
|---|
| 41 |  ;
 | 
|---|
| 42 |  D VISIT^PXRHS01(DFN,GMTSEND,GMTSBEG,GMTSNDM,GMTSOVT,DTYPE,1)
 | 
|---|
| 43 |  Q:'$D(^TMP("PXHSV",$J))
 | 
|---|
| 44 |  S GMTSIVD=0
 | 
|---|
| 45 |  F  S GMTSIVD=$O(^TMP("PXHSV",$J,GMTSIVD)) Q:GMTSIVD']""  D  Q:$D(GMTSQIT)
 | 
|---|
| 46 |  . S GMTSVDF=0
 | 
|---|
| 47 |  . F  S GMTSVDF=$O(^TMP("PXHSV",$J,GMTSIVD,GMTSVDF)) Q:GMTSVDF'>0  D  Q:$D(GMTSQIT)
 | 
|---|
| 48 |  . . S GMTSN=$G(^TMP("PXHSV",$J,GMTSIVD,GMTSVDF,0))
 | 
|---|
| 49 |  . . S GMTSEVT=$P(GMTSN,U,4),GMTSHIS=$S(GMTSEVT["HISTORICAL":1,1:0)
 | 
|---|
| 50 |  . . S X=$P(GMTSN,U,1) D REGDT4^GMTSU S GMTSDAT=X
 | 
|---|
| 51 |  . . S GMTSDTU=0,(GMTSITE,GMTSLOC)=""
 | 
|---|
| 52 |  . . S GMTSINS=$S($P(GMTSN,U,3)]"":$E($P(GMTSN,U,3),1,10),$P(GMTSN,U,8)]"":$E($P(GMTSN,U,8),1,10),1:""),GMTSITE=GMTSINS
 | 
|---|
| 53 |  . . I $G(GMPXHLOC)'="N" S GMTSLOC=$E($P(GMTSN,U,6),1,30)
 | 
|---|
| 54 |  . . I '$L(GMTSLOC) S GMTSLOC=$P(GMTSN,U,9)
 | 
|---|
| 55 |  . . S GMTSELIG=$E($P(GMTSN,U,12),1,17)
 | 
|---|
| 56 |  . . S:GMTSITE=""&('GMTSHIS) GMTSLOC=""
 | 
|---|
| 57 |  . . I GMTSHIS D
 | 
|---|
| 58 |  . . . S:GMTSLOC'=""&(GMTSITE'="") GMTSLOC=GMTSLOC_" (Historical Event)"
 | 
|---|
| 59 |  . . . S:GMTSLOC=""&(GMTSITE'="") GMTSITE=GMTSITE_" (Historical Event)"
 | 
|---|
| 60 |  . . . S:GMTSLOC'=""&(GMTSITE="") GMTSITE=GMTSLOC_" (Historical Event)",GMTSLOC=""
 | 
|---|
| 61 |  . . . S:GMTSLOC=""&(GMTSITE="") GMTSITE="Historical Event"
 | 
|---|
| 62 |  . . D CKP^GMTSUP Q:$D(GMTSQIT)  D DSPVIS,DSPPROV Q:$D(GMTSQIT)
 | 
|---|
| 63 |  . . D DSPPOV Q:$D(GMTSQIT)  D DSPCPT W !
 | 
|---|
| 64 |  K ^TMP("PXHSV",$J)
 | 
|---|
| 65 |  Q
 | 
|---|
| 66 |  ;                     
 | 
|---|
| 67 | DSPPOV ; Display Purpose of visit
 | 
|---|
| 68 |  Q:$O(^TMP("PXHSV",$J,GMTSIVD,GMTSVDF,"D",""))=""
 | 
|---|
| 69 |  Q:$G(GMPXICDF)="N"&($G(GMPXNARR)="N")
 | 
|---|
| 70 |  N GMTSN,GMTSMOD,GMTSICD,GMTSNARR,GMTSPDN,GMTS,GMTSQTY,GMTSPRI,COMMENT
 | 
|---|
| 71 |  D CKP^GMTSUP Q:$D(GMTSQIT)  D DSPVIS W ?3,"Diagnosis:"
 | 
|---|
| 72 |  S GMCKP=0,GMTSPDN="",GMTSQTY=""
 | 
|---|
| 73 |  F  S GMTSPDN=$O(^TMP("PXHSV",$J,GMTSIVD,GMTSVDF,"D",GMTSPDN)) Q:GMTSPDN'>0  D  Q:$D(GMTSQIT)
 | 
|---|
| 74 |  . S GMTSN=$G(^TMP("PXHSV",$J,GMTSIVD,GMTSVDF,"D",GMTSPDN))
 | 
|---|
| 75 |  . S GMTSMOD=$P(GMTSN,U,2)
 | 
|---|
| 76 |  . S GMTSICD=$P(GMTSN,U) D GETICDDX^GMTSPXU1(.GMTSICD,$G(GMPXICDF),GMTSMOD)
 | 
|---|
| 77 |  . S GMTSNARR=""
 | 
|---|
| 78 |  . S:$G(GMPXNARR)'="N" GMTSNARR=$G(^TMP("PXHSV",$J,GMTSIVD,GMTSVDF,"D",GMTSPDN,"N"))
 | 
|---|
| 79 |  . I $P(GMTSICD,"-",2,10)=$G(GMTSNARR) S GMTSNARR=""
 | 
|---|
| 80 |  . S GMTSPRI="" I $P(GMTSN,U,5)]"",$E($P(GMTSN,U,5),1)="P" S GMTSPRI=" (P)"
 | 
|---|
| 81 |  . D TXTFMT^GMTSPXU1(GMTSICD,$G(GMTSNARR),GMTSICL,GMTAB,DIWL,GMTSQTY,GMTSPRI)
 | 
|---|
| 82 |  . I '$D(^UTILITY($J,"W")) Q
 | 
|---|
| 83 |  . S GMTSX=0
 | 
|---|
| 84 |  . F  S GMTSX=$O(^UTILITY($J,"W",DIWL,GMTSX)) Q:GMTSX'>0!$D(GMTSQIT)  D
 | 
|---|
| 85 |  . . I GMCKP>0 D CKP^GMTSUP Q:$D(GMTSQIT)  D DSPVIS
 | 
|---|
| 86 |  . . S GMCKP=1
 | 
|---|
| 87 |  . . W ?GMTSICL+$S(GMTSX>1:GMTAB,1:0),$G(^UTILITY($J,"W",DIWL,GMTSX,0)),!
 | 
|---|
| 88 |  . S COMMENT="",COMMENT=$P($G(^TMP("PXHSV",$J,GMTSIVD,GMTSVDF,"D",GMTSPDN,"COM")),U)
 | 
|---|
| 89 |  . I COMMENT]"" S GMICL=20,GMTAB=2 D FORMAT I $D(^UTILITY($J,"W")) D
 | 
|---|
| 90 |  . . F GMTSLN=1:1:^UTILITY($J,"W",DIWL) D LINE Q:$D(GMTSQIT)
 | 
|---|
| 91 |  Q
 | 
|---|
| 92 | DSPCPT ; Display Procedures performed during the visit
 | 
|---|
| 93 |  Q:$O(^TMP("PXHSV",$J,GMTSIVD,GMTSVDF,"C",""))=""
 | 
|---|
| 94 |  N GMTSNARR,GMTSPDN,GMTSN,GMTSICD,GMTSNARR,GMTSCPT,GMTSQTY,GMTSPRIM,GMTSPRI,GMTSFLG
 | 
|---|
| 95 |  D CKP^GMTSUP Q:$D(GMTSQIT)  D DSPVIS W ?3,"Procedure:"
 | 
|---|
| 96 |  S GMCKP=0,GMTSPDN="",GMTSPRI=""
 | 
|---|
| 97 |  F  S GMTSPDN=$O(^TMP("PXHSV",$J,GMTSIVD,GMTSVDF,"C",GMTSPDN)) Q:GMTSPDN'>0  D  Q:$D(GMTSQIT)
 | 
|---|
| 98 |  . S GMTSN=$G(^TMP("PXHSV",$J,GMTSIVD,GMTSVDF,"C",GMTSPDN))
 | 
|---|
| 99 |  . S GMTSNARR=$P(GMTSN,U,2),GMTSQTY=$P(GMTSN,U,3),GMTSPRIM=$P(GMTSN,U,4)
 | 
|---|
| 100 |  . S GMTSCPT=$$GETCPT^GMTSPXU1($P(GMTSN,U)) I $P(GMTSCPT,"-",2,10)=GMTSNARR S GMTSNARR=""
 | 
|---|
| 101 |  . S GMTSPRI="" S:$G(GMTSQTY)]"" GMTSQTY=" ("_GMTSQTY_")" S:$G(GMTSPRIM)="Y" GMTSPRI="(P)"
 | 
|---|
| 102 |  . S GMTSFLG=1
 | 
|---|
| 103 |  . D TXTFMT^GMTSPXU1(GMTSCPT,GMTSNARR,GMTSICL,GMTAB,DIWL,GMTSQTY,GMTSPRI)
 | 
|---|
| 104 |  . Q:'$D(^UTILITY($J,"W"))  D DCPT
 | 
|---|
| 105 |  Q
 | 
|---|
| 106 | DCPT ; Display CPT Comments
 | 
|---|
| 107 |  N GMTSLN,GMTSMOK,GMTSX S (GMTSMOK,GMTSX)=0
 | 
|---|
| 108 |  F  S GMTSX=$O(^UTILITY($J,"W",DIWL,GMTSX)) Q:GMTSX'>0  D  Q:$D(GMTSQIT)
 | 
|---|
| 109 |  . I GMCKP>0 D CKP^GMTSUP Q:$D(GMTSQIT)  D DSPVIS Q:$D(GMTSQIT)
 | 
|---|
| 110 |  . S (GMTSMOK,GMCKP)=1 W ?GMTSICL+$S(GMTSX>1:GMTAB,1:0)
 | 
|---|
| 111 |  . W $G(^UTILITY($J,"W",DIWL,GMTSX,0))
 | 
|---|
| 112 |  . D CKP^GMTSUP Q:$D(GMTSQIT)  W !
 | 
|---|
| 113 |  Q:DTYPE="DP"
 | 
|---|
| 114 |  S COMMENT=$P($G(^TMP("PXHSV",$J,GMTSIVD,GMTSVDF,"C",GMTSPDN,"COM")),U)
 | 
|---|
| 115 |  I COMMENT]"" S GMICL=20,GMTAB=2 D FORMAT I $D(^UTILITY($J,"W")) D
 | 
|---|
| 116 |  . F GMTSLN=1:1:^UTILITY($J,"W",DIWL) D  Q:$D(GMTSQIT)
 | 
|---|
| 117 |  . . I GMTSFLG=1 W !,?10,"Comments:" S GMTSFLG=0
 | 
|---|
| 118 |  . . D LINE
 | 
|---|
| 119 |  S:+($G(GMTSCPTM))=0 GMTSMOK=0 D:GMTSMOK DMOD
 | 
|---|
| 120 |  Q
 | 
|---|
| 121 | DMOD ; Display CPT Modifier Comments
 | 
|---|
| 122 |  N GMTSM S GMTSM=""
 | 
|---|
| 123 |  W !
 | 
|---|
| 124 |  F  S GMTSM=$O(^TMP("PXHSV",$J,GMTSIVD,GMTSVDF,"C",GMTSPDN,GMTSM)) Q:GMTSM=""  D  Q:$D(GMTSQIT)
 | 
|---|
| 125 |  . I GMTSM="COM" Q
 | 
|---|
| 126 |  . N COMMENT S COMMENT=$$FCM(GMTSM) Q:'$L(COMMENT)
 | 
|---|
| 127 |  . S GMICL=26,GMTAB=2 D FORMAT I $D(^UTILITY($J,"W")) D
 | 
|---|
| 128 |  . . F GMTSLN=1:1:^UTILITY($J,"W",DIWL) D LINE2 Q:$D(GMTSQIT)
 | 
|---|
| 129 |  Q
 | 
|---|
| 130 | DSPPROV ; Display Providers for visit
 | 
|---|
| 131 |  Q:$O(^TMP("PXHSV",$J,GMTSIVD,GMTSVDF,"P",""))=""
 | 
|---|
| 132 |  N GMCNT,GMPROV
 | 
|---|
| 133 |  D ORDERPRO^GMTSPXU1(.GMPROV,20)
 | 
|---|
| 134 |  D CKP^GMTSUP Q:$D(GMTSQIT)  D DSPVIS W ?3," Provider:"
 | 
|---|
| 135 |  S GMCNT=0
 | 
|---|
| 136 |  F  S GMCNT=$O(GMPROV(GMCNT)) Q:GMCNT'>0  D  Q:GMCNT'>0!$D(GMTSQIT)
 | 
|---|
| 137 |  . I GMCNT>1 D CKP^GMTSUP Q:$D(GMTSQIT)  D DSPVIS
 | 
|---|
| 138 |  . W ?GMTSICL,GMPROV(GMCNT) S GMCNT=$O(GMPROV(GMCNT)) Q:GMCNT'>0
 | 
|---|
| 139 |  . W ?37,GMPROV(GMCNT) S GMCNT=$O(GMPROV(GMCNT)) Q:GMCNT'>0
 | 
|---|
| 140 |  . W ?60,GMPROV(GMCNT)
 | 
|---|
| 141 |  . D CKP^GMTSUP Q:$D(GMTSQIT)  W:$O(GMPROV(GMCNT)) !
 | 
|---|
| 142 |  D CKP^GMTSUP Q:$D(GMTSQIT)  W !
 | 
|---|
| 143 |  Q
 | 
|---|
| 144 | DSPVIS ; Display outpatient visit data
 | 
|---|
| 145 |  Q:GMTSNPG'>0&(GMTSDTU>0)  D:GMTSNPG HDR I GMTSNPG!(+GMTSDTU'>0) D
 | 
|---|
| 146 |  . W GMTSDAT,?14,GMTSITE,?29,GMTSLOC,?61,GMTSELIG
 | 
|---|
| 147 |  . D CKP^GMTSUP Q:$D(GMTSQIT)  W !
 | 
|---|
| 148 |  . S GMTSDTU=1
 | 
|---|
| 149 |  Q
 | 
|---|
| 150 | HDR ; Display header
 | 
|---|
| 151 |  W ?3,"Date",?14,"Facility",?29,"Hospital Location",?61,"Encounter Elig.",!!
 | 
|---|
| 152 |  Q
 | 
|---|
| 153 | FORMAT ; Formats Diagnosis/Procedure line of text
 | 
|---|
| 154 |  N DIWR,DIWF,X S DIWL=3,DIWR=80-(GMICL+GMTAB) K ^UTILITY($J,"W") S X=COMMENT D ^DIWP
 | 
|---|
| 155 |  Q
 | 
|---|
| 156 | FCM(X) ; Format CPT Modifier comment
 | 
|---|
| 157 |  N Y,%,%H,GMTSIEN,GMTSC,GMTSS,GMTST S GMTSIEN=$G(X) Q:GMTSIEN="" ""
 | 
|---|
| 158 |  S:'$D(DT)!(+($G(DT))=0) DT=$$DT^XLFDT
 | 
|---|
| 159 |  S X=$$MOD^ICPTMOD(GMTSIEN,"E",) Q:'$D(X)
 | 
|---|
| 160 |  S GMTSC=$P(X,"^",2),GMTSS=$P(X,"^",3)
 | 
|---|
| 161 |  S GMTST=$$EN2^GMTSUMX(GMTSS) S Y=""
 | 
|---|
| 162 |  S:$L(GMTST)&($L(GMTSC)) Y=GMTSC_"-"_GMTST
 | 
|---|
| 163 |  S:'$L(GMTST)&($L(GMTSS))&($L(GMTSC)) Y=GMTSC_"-"_GMTSS
 | 
|---|
| 164 |  S:'$L(GMTST)&('$L(GMTSS))&($L(GMTSC)) Y=GMTSC
 | 
|---|
| 165 |  S:Y["-" Y="Modifier "_Y S X=Y
 | 
|---|
| 166 |  Q X
 | 
|---|
| 167 | LINE ; Writes formatted lines
 | 
|---|
| 168 |  D CKP^GMTSUP Q:$D(GMTSQIT)  W ?20,^UTILITY($J,"W",DIWL,GMTSLN,0),! Q
 | 
|---|
| 169 | LINE2 ; Writes indented formatted lines
 | 
|---|
| 170 |  D CKP^GMTSUP Q:$D(GMTSQIT)  N GMTST S GMTST=20 S:+($G(GMTSLN))>1 GMTST=31 W ?GMTST,^UTILITY($J,"W",DIWL,GMTSLN,0),! Q
 | 
|---|