DVBACRRP ;ALB/GTS-557/THM-REPRINT 21-DAY CERT FOR MAS ;21 JUL 89
 ;;2.7;AMIE;;Apr 10, 1995
 D INIT
 I 'CONT G KIL
 S DVBSEL=$$SELECT^DVBAUTL5("Original Processing Date","21 Day Certificate")
 I DVBSEL="D" S SDATE=$$DATE() G:SDATE<0 KIL
 I DVBSEL="N" S XDA=$$PAT^DVBAUTL5("MAS") G:XDA<1 KIL
 I DVBSEL=0 G KIL
 D DEVICE
 I 'CONT G KIL
 D DATA
 ;
KIL D KILL
 Q
 ;
DATA ;
 I DVBSEL="D" DO
 .U IO
 .S NAME=""
 .F J=0:0 S NAME=$O(^DVB(396,"B",NAME)) Q:NAME=""  F XDA=0:0 S XDA=$O(^DVB(396,"B",NAME,XDA)) Q:XDA=""  I $P(^DVB(396,XDA,0),U,14)=SDATE S DFN=$P(^(0),U,1) D CREATE
 .Q
 I DVBSEL="N" DO
 .S DFN=$P(^DVB(396,XDA,0),U,1)
 .D CREATE
 .Q
 I NODTA=0 DO
 .S VAR(1,0)="0,0,0,2:2,0^No data found to reprint"
 .D WR^DVBAUTL4("VAR")
 .K VAR
 .Q
 Q
 ;
KILL K %DT(0),SDATE,DVBAON2,DVBSEL,VAR,CONT
 I $D(ZTQUEUED) D KILL^%ZTLOAD
 D KILL^DVBAUTIL
 Q
 ;
CREATE ;CERTIFICATE CREATE
 Q:'$D(^DVB(396,XDA,4))
 I $D(^DVB(396,XDA,2)) Q:$P(^(2),U,10)="L"
 I '$D(^DPT(DFN,0)) W:(IOST?1"C-".E)!($D(DVBAON2)) @IOF
 I '$D(^DPT(DFN,0)) W !!,"Patient record missing for DFN ",DFN,!!
 I '$D(^DPT(DFN,0)) S DVBAON2="" Q
 S PNAM=$P(^DPT(DFN,0),U,1),SSN=$P(^(0),U,9),CNUM=$S($D(^DPT(DFN,.31)):$P(^(.31),U,3),1:"Unknown")
 S WARD=$P(^DVB(396,XDA,4),U,6),BED=$P(^(4),U,7),DCHGDT=$P(^(4),U,5),ADMDT=$P(^(0),U,4)
 U IO W:(IOST?1"C-".E)!($D(DVBAON2)) @IOF
 W !,FDT(0),?32,"REPORT OF CONTACT",!,?31,"21-DAY CERTIFICATE",?(80-11),"PAGE: 1",!,?(80-$L(HD1)\2),HD1,!!!!!!!,"Patient name: ",?16,PNAM,!,?9,"SSN: ",?16,SSN,?33,"Claim #: ",?43,CNUM,!!,?9,"Ward: ",?16,WARD,?30,"Bed: ",?36,BED,!!!
 W "     The patient above has been hospitalized for 21 consecutive days ",!,"from " S Y=ADMDT X ^DD("DD") W Y," to " S Y=DCHGDT X ^DD("DD") W Y,", and the major diagnosis for",!,"this period is:",!!!!!!!!!!!!!!!!!!!!
 W "Physician signature: " F LINE=$X:1:80 W "_"
 W !!!,"        Approved by: " F LINE=$X:1:65 W "_"
 W !!?5,"R0C  119",!
 S NODTA=1
 S DVBAON2=""
 Q
 ;
INIT ;
 K ^TMP($J)
 S CONT=1,NODTA=0,HD="21-DAY CERTIFICATE REPRINTING"
 D HOME^%ZIS
 D NOPARM^DVBAUTL2
 I $D(DVBAQUIT) S CONT=0 Q
 S HD1=$$SITE^DVBCUTL4()
 I '$D(DT) S X="T" D ^%DT S DT=Y
 S Y=DT X ^DD("DD") S FDT(0)=Y
 S VAR(1,0)="0,0,(IOM-$L(HD)\2),1:3,1:0^"_HD
 D WR^DVBAUTL4("VAR")
 K VAR
 Q
 ;
DATE() ;THis function returns a date of the original request from the user.
 S %DT(0)=-DT
 S %DT("A")="Enter ORIGINAL PROCESSING DATE: ",%DT="AEQ"
 D ^%DT
 K %DT
 Q Y
 ;
DEVICE ;
 S VAR(1,0)="0,0,0,2:0,0^"
 D WR^DVBAUTL4("VAR")
 K VAR
 S %ZIS="AEQ"
 D ^%ZIS K %ZIS
 I POP S CONT=0 Q
 I $D(IO("Q")) DO
 .S CONT=0
 .S ZTIO=ION,ZTDESC="21-day Cert reprint",ZTRTN="DATA^DVBACRRP"
 .F I="XDA","DVBSEL","FDT(0)","HD","HD1","SDATE","NODTA" S ZTSAVE(I)=""
 .D ^%ZTLOAD
 .D ^%ZISC
 .I $D(ZTSK) DO
 ..S VAR(1,0)="0,0,0,2:2,0^Request queued."
 ..D WR^DVBAUTL4("VAR")
 ..K VAR
 ..Q
 .Q
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDVBACRRP   2897     printed  Sep 23, 2025@19:17:01                                                                                                                                                                                                    Page 2
DVBACRRP  ;ALB/GTS-557/THM-REPRINT 21-DAY CERT FOR MAS ;21 JUL 89
 +1       ;;2.7;AMIE;;Apr 10, 1995
 +2        DO INIT
 +3        IF 'CONT
               GOTO KIL
 +4        SET DVBSEL=$$SELECT^DVBAUTL5("Original Processing Date","21 Day Certificate")
 +5        IF DVBSEL="D"
               SET SDATE=$$DATE()
               if SDATE<0
                   GOTO KIL
 +6        IF DVBSEL="N"
               SET XDA=$$PAT^DVBAUTL5("MAS")
               if XDA<1
                   GOTO KIL
 +7        IF DVBSEL=0
               GOTO KIL
 +8        DO DEVICE
 +9        IF 'CONT
               GOTO KIL
 +10       DO DATA
 +11      ;
KIL        DO KILL
 +1        QUIT 
 +2       ;
DATA      ;
 +1        IF DVBSEL="D"
               Begin DoDot:1
 +2                USE IO
 +3                SET NAME=""
 +4                FOR J=0:0
                       SET NAME=$ORDER(^DVB(396,"B",NAME))
                       if NAME=""
                           QUIT 
                       FOR XDA=0:0
                           SET XDA=$ORDER(^DVB(396,"B",NAME,XDA))
                           if XDA=""
                               QUIT 
                           IF $PIECE(^DVB(396,XDA,0),U,14)=SDATE
                               SET DFN=$PIECE(^(0),U,1)
                               DO CREATE
 +5                QUIT 
               End DoDot:1
 +6        IF DVBSEL="N"
               Begin DoDot:1
 +7                SET DFN=$PIECE(^DVB(396,XDA,0),U,1)
 +8                DO CREATE
 +9                QUIT 
               End DoDot:1
 +10       IF NODTA=0
               Begin DoDot:1
 +11               SET VAR(1,0)="0,0,0,2:2,0^No data found to reprint"
 +12               DO WR^DVBAUTL4("VAR")
 +13               KILL VAR
 +14               QUIT 
               End DoDot:1
 +15       QUIT 
 +16      ;
KILL       KILL %DT(0),SDATE,DVBAON2,DVBSEL,VAR,CONT
 +1        IF $DATA(ZTQUEUED)
               DO KILL^%ZTLOAD
 +2        DO KILL^DVBAUTIL
 +3        QUIT 
 +4       ;
CREATE    ;CERTIFICATE CREATE
 +1        if '$DATA(^DVB(396,XDA,4))
               QUIT 
 +2        IF $DATA(^DVB(396,XDA,2))
               if $PIECE(^(2),U,10)="L"
                   QUIT 
 +3        IF '$DATA(^DPT(DFN,0))
               if (IOST?1"C-".E)!($DATA(DVBAON2))
                   WRITE @IOF
 +4        IF '$DATA(^DPT(DFN,0))
               WRITE !!,"Patient record missing for DFN ",DFN,!!
 +5        IF '$DATA(^DPT(DFN,0))
               SET DVBAON2=""
               QUIT 
 +6        SET PNAM=$PIECE(^DPT(DFN,0),U,1)
           SET SSN=$PIECE(^(0),U,9)
           SET CNUM=$SELECT($DATA(^DPT(DFN,.31)):$PIECE(^(.31),U,3),1:"Unknown")
 +7        SET WARD=$PIECE(^DVB(396,XDA,4),U,6)
           SET BED=$PIECE(^(4),U,7)
           SET DCHGDT=$PIECE(^(4),U,5)
           SET ADMDT=$PIECE(^(0),U,4)
 +8        USE IO
           if (IOST?1"C-".E)!($DATA(DVBAON2))
               WRITE @IOF
 +9        WRITE !,FDT(0),?32,"REPORT OF CONTACT",!,?31,"21-DAY CERTIFICATE",?(80-11),"PAGE: 1",!,?(80-$LENGTH(HD1)\2),HD1,!!!!!!!,"Patient name: ",?16,PNAM,!,?9,"SSN: ",?16,SSN,?33,"Claim #: ",?43,CNUM,!!,?9,"Ward: ",?16,WARD,?30,"Bed: ",?36,BED,!!!
 +10       WRITE "     The patient above has been hospitalized for 21 consecutive days ",!,"from "
           SET Y=ADMDT
           XECUTE ^DD("DD")
           WRITE Y," to "
           SET Y=DCHGDT
           XECUTE ^DD("DD")
           WRITE Y,", and the major diagnosis for",!,"this period is:",!!!!!!!!!!!!!!!!!!!!
 +11       WRITE "Physician signature: "
           FOR LINE=$X:1:80
               WRITE "_"
 +12       WRITE !!!,"        Approved by: "
           FOR LINE=$X:1:65
               WRITE "_"
 +13       WRITE !!?5,"R0C  119",!
 +14       SET NODTA=1
 +15       SET DVBAON2=""
 +16       QUIT 
 +17      ;
INIT      ;
 +1        KILL ^TMP($JOB)
 +2        SET CONT=1
           SET NODTA=0
           SET HD="21-DAY CERTIFICATE REPRINTING"
 +3        DO HOME^%ZIS
 +4        DO NOPARM^DVBAUTL2
 +5        IF $DATA(DVBAQUIT)
               SET CONT=0
               QUIT 
 +6        SET HD1=$$SITE^DVBCUTL4()
 +7        IF '$DATA(DT)
               SET X="T"
               DO ^%DT
               SET DT=Y
 +8        SET Y=DT
           XECUTE ^DD("DD")
           SET FDT(0)=Y
 +9        SET VAR(1,0)="0,0,(IOM-$L(HD)\2),1:3,1:0^"_HD
 +10       DO WR^DVBAUTL4("VAR")
 +11       KILL VAR
 +12       QUIT 
 +13      ;
DATE()    ;THis function returns a date of the original request from the user.
 +1        SET %DT(0)=-DT
 +2        SET %DT("A")="Enter ORIGINAL PROCESSING DATE: "
           SET %DT="AEQ"
 +3        DO ^%DT
 +4        KILL %DT
 +5        QUIT Y
 +6       ;
DEVICE    ;
 +1        SET VAR(1,0)="0,0,0,2:0,0^"
 +2        DO WR^DVBAUTL4("VAR")
 +3        KILL VAR
 +4        SET %ZIS="AEQ"
 +5        DO ^%ZIS
           KILL %ZIS
 +6        IF POP
               SET CONT=0
               QUIT 
 +7        IF $DATA(IO("Q"))
               Begin DoDot:1
 +8                SET CONT=0
 +9                SET ZTIO=ION
                   SET ZTDESC="21-day Cert reprint"
                   SET ZTRTN="DATA^DVBACRRP"
 +10               FOR I="XDA","DVBSEL","FDT(0)","HD","HD1","SDATE","NODTA"
                       SET ZTSAVE(I)=""
 +11               DO ^%ZTLOAD
 +12               DO ^%ZISC
 +13               IF $DATA(ZTSK)
                       Begin DoDot:2
 +14                       SET VAR(1,0)="0,0,0,2:2,0^Request queued."
 +15                       DO WR^DVBAUTL4("VAR")
 +16                       KILL VAR
 +17                       QUIT 
                       End DoDot:2
 +18               QUIT 
               End DoDot:1
 +19       QUIT