DGPTODI1 ;ALB/AS - DRG INDEX REPORT ; 20 MAY 87 09:00
;;5.3;Registration;**1015**;Aug 13, 1993;Build 21
S IOP="HOME" D ^%ZIS K IOP D LO^DGUTL,Q,ASK G:DGQ Q
S DGPGM="^DGPTODI2",DGVAR="DUZ^DGD^DGB^DGR^DGP^DGS^DGC1^DGC2^DGSD^DGED^DGC"
W !!?12,*7,"** NOTE: 132 columns required for output",! D ZIS^DGUTQ G:POP Q U IO S X=132 X ^%ZOSF("RM") D ^DGPTODI2,CLOSE^DGUTQ G Q
RD S X="" R X:DTIME I X["^"!('$T) S DGQ=1 Q
S X=$E(X) Q
ASK S DGQ="" W !!,"For (A)CTIVE ADMISSIONS or",!?4,"(D)ISCHARGED PATIENTS: DISCHARGED// " S Z="^ACTIVE ADMISSIONS^DISCHARGED PATIENTS" D RD Q:DGQ I X="" S X="D" W X
D IN^DGHELP I %=-1 W !!?12,"CHOOSE FROM:",!?12,"A - Active admissions (all current inpatients) or",!?12,"D - Discharged patients within a date range",! S %="" G ASK
S DGD=$S(X="D":1,1:0) I 'DGD S DGSD=0,DGED=(DT_.9),DGB=1,DGS=0 G R
DC W ! S %DT="AEXP",%DT(0)=-DT,%DT("A")="Start with DISCHARGE DATE: " D ^%DT S:X["^" DGQ=1 Q:DGQ G:Y<0 DC S DGSD=Y-.1
S %DT("A")=" End with DISCHARGE DATE: ",%DT(0)=DGSD D ^%DT S:X["^" DGQ=1 Q:DGQ G:Y<0 DC I (DGSD+10000)<Y W !,*7,?12,"Please limit your discharge date range to no more than 1 year" G DC
S DGED=Y_.9
B W !!,"For (T)RANSFER DRGs or",!?4,"(D)RG from 701/702/703 TRANSACTIONS: TRANSFER DRGs// " S Z="^TRANSFER DRGs^DRGs from 701/702/703 TRANSACTIONS" D RD Q:DGQ I X="" S X="T" W X
D IN^DGHELP I %=-1 W !!?12,"CHOOSE FROM:",!?12,"D - to include DRGs calculated using diagnosis codes from",!?16,"701/702/703 transactions",!?12,"T - to include TRANSFER DRGs based on diagnosis codes from",!?16,"501 transactions",! S %="" G B
S DGB=$S(X="T":1,1:0)
S W !!,"Choose PTF Status(es) to include:",!?4,"(A)LL STATUSES or",!?4,"(O)PEN,(C)LOSED,(R)ELEASED,(T)RANSMITTED ONLY: ALL// "
S Z="^ALL STATUSES^OPEN^CLOSED^RELEASED^TRANSMITTED" D RD Q:DGQ I X="" S X="A" W X
D IN^DGHELP I %=-1 D H^DGPTODI4 G S
S DGS=$S(X="A":"A",X="O":0,X="C":1,X="R":2,1:3)
R W !!,"(R)ANGE or (E)XACT MATCH or (A)LL DRGs: ALL// " S Z="^RANGE^EXACT MATCH^ALL" D RD Q:DGQ I X="" S X="A" W X
D IN^DGHELP I %=-1 W !!?12,"CHOOSE FROM:",!?12,"R - to specify a range of DRGs or",!?12,"A - to select ALL DRGs or",!?12,"E - to specify a DRG to match exactly",! S %="" G R
S DGR=$S(X="E":0,1:1)
I X="A" S DGR=2,(DGC1,DGC2)="" G P
S DIC(0)="AMEZQ",DIC="^ICD(" D E^DGPTODI4:'DGR,RANGE^DGPTODI4:DGR=1 Q:DGQ
P W !!,"Sort by (P)ATIENT NAME or (T)ERMINAL DIGIT ORDER: PATIENT// " S Z="^PATIENT NAME^TERMINAL DIGIT ORDER" D RD Q:DGQ I X="" S X="P" W X
D IN^DGHELP I %=-1 W !!?12,"CHOOSE FROM:",!?12,"T - to sort by terminal digit order or",!?12,"P - to sort by patient last name",! S %="" G P
S DGP=$S(X="P":1,1:0)
C W !!,"Choose (I)NCLUDE or (S)UPPRESS NO CODES LISTING: INCLUDE// " S Z="^INCLUDE NO CODES LISTING^SUPPRESS NO CODES LISTING" D RD Q:DGQ I X="" S X="I" W X
D IN^DGHELP I %=-1 D C^DGPTODI4 G C
S DGC=$S(X="I":1,1:0)
W !!,"You have selected output for: ",!?4,$S(DGD:"Patients discharged between ",1:"Active admissions.")
I DGD S Y=(DGSD+.1) X ^DD("DD") W ?4,Y," and " S Y=$P(DGED,".") X ^DD("DD") W Y,!?4,$S('DGB:"not ",1:""),"including TRANSFER DRGs with ",$S(DGS="A":"All",DGS=0:"Open",DGS=1:"Closed",DGS=2:"Released",1:"Transmitted")," PTF status"
W:DGD $S(DGS="A":"es",1:" only"),"." W !?4,"Search for ",$S(DGR=2:"all DRG codes",1:"DRG code: ") W DGC1 W:DGR=1 " to DRG code: ",DGC2 W "."
W !?4,"No Codes Listing ",$S(DGC:"included",1:"suppressed"),"."
W !?4,"Sort report by ",$S(DGP:"patient last name.",1:"terminal digit order."),!
OK W "IS THIS CORRECT" S %=1 D YN^DICN I '% W !!?6,"Enter <RET> if this information is correct",!?10,"Enter 'N' for NO to exit",!! G OK
S:%'=1 DGQ=1 Q
Q K DGD,DGB,DGR,DGC,DGP,DGS,DGC1,DGC2,DGSD,DGED,DGQ,DGPGM,DGVAR,X,Y,Z,DIC,POP,%DT,% Q
DGPTODI1 ;ALB/AS - DRG INDEX REPORT ; 20 MAY 87 09:00
+1 ;;5.3;Registration;**1015**;Aug 13, 1993;Build 21
+2 SET IOP="HOME"
DO ^%ZIS
KILL IOP
DO LO^DGUTL
DO Q
DO ASK
IF DGQ
GOTO Q
+3 SET DGPGM="^DGPTODI2"
SET DGVAR="DUZ^DGD^DGB^DGR^DGP^DGS^DGC1^DGC2^DGSD^DGED^DGC"
+4 WRITE !!?12,*7,"** NOTE: 132 columns required for output",!
DO ZIS^DGUTQ
IF POP
GOTO Q
USE IO
SET X=132
XECUTE ^%ZOSF("RM")
DO ^DGPTODI2
DO CLOSE^DGUTQ
GOTO Q
RD SET X=""
READ X:DTIME
IF X["^"!('$TEST)
SET DGQ=1
QUIT
+1 SET X=$EXTRACT(X)
QUIT
ASK SET DGQ=""
WRITE !!,"For (A)CTIVE ADMISSIONS or",!?4,"(D)ISCHARGED PATIENTS: DISCHARGED// "
SET Z="^ACTIVE ADMISSIONS^DISCHARGED PATIENTS"
DO RD
IF DGQ
QUIT
IF X=""
SET X="D"
WRITE X
+1 DO IN^DGHELP
IF %=-1
WRITE !!?12,"CHOOSE FROM:",!?12,"A - Active admissions (all current inpatients) or",!?12,"D - Discharged patients within a date range",!
SET %=""
GOTO ASK
+2 SET DGD=$SELECT(X="D":1,1:0)
IF 'DGD
SET DGSD=0
SET DGED=(DT_.9)
SET DGB=1
SET DGS=0
GOTO R
DC WRITE !
SET %DT="AEXP"
SET %DT(0)=-DT
SET %DT("A")="Start with DISCHARGE DATE: "
DO ^%DT
IF X["^"
SET DGQ=1
IF DGQ
QUIT
IF Y<0
GOTO DC
SET DGSD=Y-.1
+1 SET %DT("A")=" End with DISCHARGE DATE: "
SET %DT(0)=DGSD
DO ^%DT
IF X["^"
SET DGQ=1
IF DGQ
QUIT
IF Y<0
GOTO DC
IF (DGSD+10000)<Y
WRITE !,*7,?12,"Please limit your discharge date range to no more than 1 year"
GOTO DC
+2 SET DGED=Y_.9
B WRITE !!,"For (T)RANSFER DRGs or",!?4,"(D)RG from 701/702/703 TRANSACTIONS: TRANSFER DRGs// "
SET Z="^TRANSFER DRGs^DRGs from 701/702/703 TRANSACTIONS"
DO RD
IF DGQ
QUIT
IF X=""
SET X="T"
WRITE X
+1 DO IN^DGHELP
IF %=-1
WRITE !!?12,"CHOOSE FROM:",!?12,"D - to include DRGs calculated using diagnosis codes from",!?16,"701/702/703 transactions",!?12,"T - to include TRANSFER DRGs based on diagnosis codes from",!?16,"501 transactions",!
SET %=""
GOTO B
+2 SET DGB=$SELECT(X="T":1,1:0)
S WRITE !!,"Choose PTF Status(es) to include:",!?4,"(A)LL STATUSES or",!?4,"(O)PEN,(C)LOSED,(R)ELEASED,(T)RANSMITTED ONLY: ALL// "
+1 SET Z="^ALL STATUSES^OPEN^CLOSED^RELEASED^TRANSMITTED"
DO RD
IF DGQ
QUIT
IF X=""
SET X="A"
WRITE X
+2 DO IN^DGHELP
IF %=-1
DO H^DGPTODI4
GOTO S
+3 SET DGS=$SELECT(X="A":"A",X="O":0,X="C":1,X="R":2,1:3)
R WRITE !!,"(R)ANGE or (E)XACT MATCH or (A)LL DRGs: ALL// "
SET Z="^RANGE^EXACT MATCH^ALL"
DO RD
IF DGQ
QUIT
IF X=""
SET X="A"
WRITE X
+1 DO IN^DGHELP
IF %=-1
WRITE !!?12,"CHOOSE FROM:",!?12,"R - to specify a range of DRGs or",!?12,"A - to select ALL DRGs or",!?12,"E - to specify a DRG to match exactly",!
SET %=""
GOTO R
+2 SET DGR=$SELECT(X="E":0,1:1)
+3 IF X="A"
SET DGR=2
SET (DGC1,DGC2)=""
GOTO P
+4 SET DIC(0)="AMEZQ"
SET DIC="^ICD("
IF 'DGR
DO E^DGPTODI4
IF DGR=1
DO RANGE^DGPTODI4
IF DGQ
QUIT
P WRITE !!,"Sort by (P)ATIENT NAME or (T)ERMINAL DIGIT ORDER: PATIENT// "
SET Z="^PATIENT NAME^TERMINAL DIGIT ORDER"
DO RD
IF DGQ
QUIT
IF X=""
SET X="P"
WRITE X
+1 DO IN^DGHELP
IF %=-1
WRITE !!?12,"CHOOSE FROM:",!?12,"T - to sort by terminal digit order or",!?12,"P - to sort by patient last name",!
SET %=""
GOTO P
+2 SET DGP=$SELECT(X="P":1,1:0)
C WRITE !!,"Choose (I)NCLUDE or (S)UPPRESS NO CODES LISTING: INCLUDE// "
SET Z="^INCLUDE NO CODES LISTING^SUPPRESS NO CODES LISTING"
DO RD
IF DGQ
QUIT
IF X=""
SET X="I"
WRITE X
+1 DO IN^DGHELP
IF %=-1
DO C^DGPTODI4
GOTO C
+2 SET DGC=$SELECT(X="I":1,1:0)
+3 WRITE !!,"You have selected output for: ",!?4,$SELECT(DGD:"Patients discharged between ",1:"Active admissions.")
+4 IF DGD
SET Y=(DGSD+.1)
XECUTE ^DD("DD")
WRITE ?4,Y," and "
SET Y=$PIECE(DGED,".")
XECUTE ^DD("DD")
WRITE Y,!?4,$SELECT('DGB:"not ",1:""),"including TRANSFER DRGs with ",$SELECT(DGS="A":"All",DGS=0:"Open",DGS=1:"Closed",DGS=2:"Released",1:"Transmitted")," PTF status"
+5 IF DGD
WRITE $SELECT(DGS="A":"es",1:" only"),"."
WRITE !?4,"Search for ",$SELECT(DGR=2:"all DRG codes",1:"DRG code: ")
WRITE DGC1
IF DGR=1
WRITE " to DRG code: ",DGC2
WRITE "."
+6 WRITE !?4,"No Codes Listing ",$SELECT(DGC:"included",1:"suppressed"),"."
+7 WRITE !?4,"Sort report by ",$SELECT(DGP:"patient last name.",1:"terminal digit order."),!
OK WRITE "IS THIS CORRECT"
SET %=1
DO YN^DICN
IF '%
WRITE !!?6,"Enter <RET> if this information is correct",!?10,"Enter 'N' for NO to exit",!!
GOTO OK
+1 IF %'=1
SET DGQ=1
QUIT
Q KILL DGD,DGB,DGR,DGC,DGP,DGS,DGC1,DGC2,DGSD,DGED,DGQ,DGPGM,DGVAR,X,Y,Z,DIC,POP,%DT,%
QUIT