HBHCXMT ; LR VAMC(IRMS)/MJT-HBHC TRANSMIT TO AUSTIN; Feb 22, 2021@07:22
 ;;1.0;HOSPITAL BASED HOME CARE;**2,3,6,8,10,13,24,32**;NOV 01, 1993;Build 58
 ;
 ;$$PROD^XUPROD - IA #4440  (Supported)
 ;
 ; routine calls HOSP^HBHCUTL1
 I $P(^HBHC(631.9,1,0),U,8)]"" W $C(7),!,"File Update in progress.  Please try again later." H 3 Q 
 I ($D(^HBHC(634.1,"B")))!($D(^HBHC(634.2,"B")))!($D(^HBHC(634.3,"B")))!($D(^HBHC(634.5,"B")))!($D(^HBHC(634.7,"B"))) W $C(7),!!,"Records containing errors exist and must be corrected before file can",!,"be transmitted.",!! H 3 Q
 I '$D(^HBHC(634,"B")) W $C(7),!!,"No data on file to transmit." H 3 Q
 I ('$D(^HBHC(631,"AE","F")))&('$D(^HBHC(631,"AF","F")))&('$D(^HBHC(632,"AC","F")))&('$D(^HBHC(633.2,"AC","F")))!($P(^HBHC(631.9,1,0),U,6)]"") W $C(7),!!,"Data on file has been transmitted to Austin; duplicate transmission not allowed." H 3 Q
 I $P(^HBHC(631.9,1,0),U,7)]"" S HBHCPRTR=$P($G(^%ZIS(1,$P(^HBHC(631.9,1,0),U,7),0)),U) I HBHCPRTR]"" W !,"Transmit Report will be printed on device:  ",HBHCPRTR W "." D PROMPT2^HBHCR15B
 S ZTRTN="DQ^HBHCXMT",ZTIO="",ZTDTH=$H,ZTDESC="HBPC Transmission",ZTSAVE("HBHC*")="" D ^%ZTLOAD,^%ZISC
 W $C(7),!!,"Transmission request has been queued.  Task number:  ",ZTSK,!! H 3
 G EXIT
DQ ; De-queue
 ; Set Transmission in Progress Flag
 S $P(^HBHC(631.9,1,0),U,6)=1
 K XMZ,%DT,^TMP("HBHC",$J)
 D HOSP^HBHCUTL1
 S X="T" D ^%DT S HBHCDT=Y,HBHCDATE=$E(HBHCDT,4,5)_"/"_$E(HBHCDT,6,7)_"/"_$E(HBHCDT,2,3)
 S (HBHCCNT,HBHCFLG,HBHCNODE)=0,HBHCMSG=1
 F  S HBHCNODE=$O(^HBHC(634,HBHCNODE)) D:(HBHCCNT>99)!(HBHCNODE'>0) MAIL Q:HBHCNODE'>0  S HBHCCNT=HBHCCNT+1,HBHCINFO=^HBHC(634,HBHCNODE,0),^TMP("HBHC",$J,HBHCMSG,HBHCNODE,0)=HBHCINFO D HISTORY
CLEANUP ; Cleanup Transmit History (HBHC(634.6)) to maintain maximum of last 12 transmit batches
 S (HBHCTOT,HBHCDATE)=0 F  S HBHCDATE=$O(^HBHC(634.6,"C",HBHCDATE)) Q:HBHCDATE'>0  S HBHCTOT=HBHCTOT+1 S:HBHCTOT=1 HBHCDAT=HBHCDATE
 I HBHCTOT>12 S DIK="^HBHC(634.6,",DA="" F  S DA=$O(^HBHC(634.6,"C",HBHCDAT,DA)) Q:DA'>0  D ^DIK
 ; Turn Off Transmission in Progress Flag
 S $P(^HBHC(631.9,1,0),U,6)=""
PRINT ; Print Transmit Report if default printer exists in 631.9
 ; HBHCIOP set in PROMPT2^HBHCR15B
 I ($D(HBHCIOP))&($D(HBHCHEAD)) N IOP,ZTIO,ZTSAVE,ZTRTN,ZTDESC,ZTASK,%ZIS,ZTDTH,ZTQUEUED S ZTRTN="DQ^HBHCR15A",ZTIO=HBHCIOP,ZTDESC="HBPC Transmit Report",ZTSAVE("HBHC*")="",ZTDTH=$H D ^%ZTLOAD,^%ZISC
EXIT ; Exit module
 K DA,DIC,DIE,DIK,DR,HBHCCNT,HBHCDAT,HBHCDATE,HBHCDT,HBHCFLG,HBHCHOSP,HBHCINFO,HBHCMSG,HBHCNODE,HBHCPRTR,HBHCTOT,HBHCZ,XMSUB,XMTEXT,XMY,XMZ,X,Y,%,%DT,^TMP("HBHC",$J)
 Q
MAIL ; Send mail message
 ;HBH*1.0*32: Determine recipient based on whether test or production environment
 N HBHCXMY
 S HBHCXMY=$S($$PROD^XUPROD:"XXX@Q-HBH.DOMAIN.EXT",1:"XXX@Q-HBX.DOMAIN.EXT")
 S XMY(HBHCXMY)=""
 S XMSUB="HBHC Site: "_$S($P(^HBHC(631.9,1,0),U,5)]"":$E(HBHCHOSP,1,3),1:"")_"  Message: "_HBHCMSG_"  "_HBHCDATE_" Transmission",XMTEXT="^TMP(""HBHC"",$J,HBHCMSG,"
 D ^XMD
 S HBHCMSG=HBHCMSG+1,HBHCCNT=0
LOOP ; Loop thru ^HBHC(631,"AE") (Form 3 Transmit Flag), ^HBHC(631,"AF") (Form 5 Transmit Flag), & ^HBHC(632,"AC") (Form 4 Transmit Flag) cross-refs to set batch initial MM message number & mailman message date fields in ^HBHC(631/632)
 ; also loop thru ^HBHC(633.2,"AC") (Form 7 Transmit Flag)
 Q:HBHCFLG
 S DIE="^HBHC(631,"
 S DR="71///T;74///^S X=XMZ;75///^S X=HBHCDT",DA="" F  S DA=$O(^HBHC(631,"AE","F",DA)) Q:DA=""  D ^DIE
 S DR="72///T;77///^S X=XMZ;78///^S X=HBHCDT",DA="" F  S DA=$O(^HBHC(631,"AF","F",DA)) Q:DA=""  D ^DIE
 S DIE="^HBHC(632,",DR="7///T;9///^S X=XMZ;10///^S X=HBHCDT",DA="" F  S DA=$O(^HBHC(632,"AC","F",DA)) Q:DA=""  D ^DIE
 ; Only update if Sanctioned MFH site
 I $P($G(^HBHC(631.9,1,0)),U,9)]"" S DIE="^HBHC(633.2,",DR="27///T;29///^S X=XMZ;30///^S X=HBHCDT",DA="" F  S DA=$O(^HBHC(633.2,"AC","F",DA)) Q:DA=""  D ^DIE
 ; Set Last Mail Message Date in System Parameters file
 S $P(^HBHC(631.9,1,0),U,2)=HBHCDT
 S HBHCFLG=1
 Q
HISTORY ; Update HBHC(634.6 Transmit History file
 K DD,DO S DIC="^HBHC(634.6,",DIC(0)="L",DIC("DR")="1///^S X=HBHCDT",X=HBHCINFO D FILE^DICN K DO
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HHBHCXMT   4162     printed  Sep 23, 2025@19:35:03                                                                                                                                                                                                     Page 2
HBHCXMT   ; LR VAMC(IRMS)/MJT-HBHC TRANSMIT TO AUSTIN; Feb 22, 2021@07:22
 +1       ;;1.0;HOSPITAL BASED HOME CARE;**2,3,6,8,10,13,24,32**;NOV 01, 1993;Build 58
 +2       ;
 +3       ;$$PROD^XUPROD - IA #4440  (Supported)
 +4       ;
 +5       ; routine calls HOSP^HBHCUTL1
 +6        IF $PIECE(^HBHC(631.9,1,0),U,8)]""
               WRITE $CHAR(7),!,"File Update in progress.  Please try again later."
               HANG 3
               QUIT 
 +7        IF ($DATA(^HBHC(634.1,"B")))!($DATA(^HBHC(634.2,"B")))!($DATA(^HBHC(634.3,"B")))!($DATA(^HBHC(634.5,"B")))!($DATA(^HBHC(634.7,"B")))
               WRITE $CHAR(7),!!,"Records containing errors exist and must be corrected before file can",!,"be transmitted.",!!
               HANG 3
               QUIT 
 +8        IF '$DATA(^HBHC(634,"B"))
               WRITE $CHAR(7),!!,"No data on file to transmit."
               HANG 3
               QUIT 
 +9        IF ('$DATA(^HBHC(631,"AE","F")))&('$DATA(^HBHC(631,"AF","F")))&('$DATA(^HBHC(632,"AC","F")))&('$DATA(^HBHC(633.2,"AC","F")))!($PIECE(^HBHC(631.9,1,0),U,6)]"")
               WRITE $CHAR(7),!!,"Data on file has been transmitted to Austin; duplicate transmission not allowed."
               HANG 3
               QUIT 
 +10       IF $PIECE(^HBHC(631.9,1,0),U,7)]""
               SET HBHCPRTR=$PIECE($GET(^%ZIS(1,$PIECE(^HBHC(631.9,1,0),U,7),0)),U)
               IF HBHCPRTR]""
                   WRITE !,"Transmit Report will be printed on device:  ",HBHCPRTR
                   WRITE "."
                   DO PROMPT2^HBHCR15B
 +11       SET ZTRTN="DQ^HBHCXMT"
           SET ZTIO=""
           SET ZTDTH=$HOROLOG
           SET ZTDESC="HBPC Transmission"
           SET ZTSAVE("HBHC*")=""
           DO ^%ZTLOAD
           DO ^%ZISC
 +12       WRITE $CHAR(7),!!,"Transmission request has been queued.  Task number:  ",ZTSK,!!
           HANG 3
 +13       GOTO EXIT
DQ        ; De-queue
 +1       ; Set Transmission in Progress Flag
 +2        SET $PIECE(^HBHC(631.9,1,0),U,6)=1
 +3        KILL XMZ,%DT,^TMP("HBHC",$JOB)
 +4        DO HOSP^HBHCUTL1
 +5        SET X="T"
           DO ^%DT
           SET HBHCDT=Y
           SET HBHCDATE=$EXTRACT(HBHCDT,4,5)_"/"_$EXTRACT(HBHCDT,6,7)_"/"_$EXTRACT(HBHCDT,2,3)
 +6        SET (HBHCCNT,HBHCFLG,HBHCNODE)=0
           SET HBHCMSG=1
 +7        FOR 
               SET HBHCNODE=$ORDER(^HBHC(634,HBHCNODE))
               if (HBHCCNT>99)!(HBHCNODE'>0)
                   DO MAIL
               if HBHCNODE'>0
                   QUIT 
               SET HBHCCNT=HBHCCNT+1
               SET HBHCINFO=^HBHC(634,HBHCNODE,0)
               SET ^TMP("HBHC",$JOB,HBHCMSG,HBHCNODE,0)=HBHCINFO
               DO HISTORY
CLEANUP   ; Cleanup Transmit History (HBHC(634.6)) to maintain maximum of last 12 transmit batches
 +1        SET (HBHCTOT,HBHCDATE)=0
           FOR 
               SET HBHCDATE=$ORDER(^HBHC(634.6,"C",HBHCDATE))
               if HBHCDATE'>0
                   QUIT 
               SET HBHCTOT=HBHCTOT+1
               if HBHCTOT=1
                   SET HBHCDAT=HBHCDATE
 +2        IF HBHCTOT>12
               SET DIK="^HBHC(634.6,"
               SET DA=""
               FOR 
                   SET DA=$ORDER(^HBHC(634.6,"C",HBHCDAT,DA))
                   if DA'>0
                       QUIT 
                   DO ^DIK
 +3       ; Turn Off Transmission in Progress Flag
 +4        SET $PIECE(^HBHC(631.9,1,0),U,6)=""
PRINT     ; Print Transmit Report if default printer exists in 631.9
 +1       ; HBHCIOP set in PROMPT2^HBHCR15B
 +2        IF ($DATA(HBHCIOP))&($DATA(HBHCHEAD))
               NEW IOP,ZTIO,ZTSAVE,ZTRTN,ZTDESC,ZTASK,%ZIS,ZTDTH,ZTQUEUED
               SET ZTRTN="DQ^HBHCR15A"
               SET ZTIO=HBHCIOP
               SET ZTDESC="HBPC Transmit Report"
               SET ZTSAVE("HBHC*")=""
               SET ZTDTH=$HOROLOG
               DO ^%ZTLOAD
               DO ^%ZISC
EXIT      ; Exit module
 +1        KILL DA,DIC,DIE,DIK,DR,HBHCCNT,HBHCDAT,HBHCDATE,HBHCDT,HBHCFLG,HBHCHOSP,HBHCINFO,HBHCMSG,HBHCNODE,HBHCPRTR,HBHCTOT,HBHCZ,XMSUB,XMTEXT,XMY,XMZ,X,Y,%,%DT,^TMP("HBHC",$JOB)
 +2        QUIT 
MAIL      ; Send mail message
 +1       ;HBH*1.0*32: Determine recipient based on whether test or production environment
 +2        NEW HBHCXMY
 +3        SET HBHCXMY=$SELECT($$PROD^XUPROD:"XXX@Q-HBH.DOMAIN.EXT",1:"XXX@Q-HBX.DOMAIN.EXT")
 +4        SET XMY(HBHCXMY)=""
 +5        SET XMSUB="HBHC Site: "_$SELECT($PIECE(^HBHC(631.9,1,0),U,5)]"":$EXTRACT(HBHCHOSP,1,3),1:"")_"  Message: "_HBHCMSG_"  "_HBHCDATE_" Transmission"
           SET XMTEXT="^TMP(""HBHC"",$J,HBHCMSG,"
 +6        DO ^XMD
 +7        SET HBHCMSG=HBHCMSG+1
           SET HBHCCNT=0
LOOP      ; Loop thru ^HBHC(631,"AE") (Form 3 Transmit Flag), ^HBHC(631,"AF") (Form 5 Transmit Flag), & ^HBHC(632,"AC") (Form 4 Transmit Flag) cross-refs to set batch initial MM message number & mailman message date fields in ^HBHC(631/632)
 +1       ; also loop thru ^HBHC(633.2,"AC") (Form 7 Transmit Flag)
 +2        if HBHCFLG
               QUIT 
 +3        SET DIE="^HBHC(631,"
 +4        SET DR="71///T;74///^S X=XMZ;75///^S X=HBHCDT"
           SET DA=""
           FOR 
               SET DA=$ORDER(^HBHC(631,"AE","F",DA))
               if DA=""
                   QUIT 
               DO ^DIE
 +5        SET DR="72///T;77///^S X=XMZ;78///^S X=HBHCDT"
           SET DA=""
           FOR 
               SET DA=$ORDER(^HBHC(631,"AF","F",DA))
               if DA=""
                   QUIT 
               DO ^DIE
 +6        SET DIE="^HBHC(632,"
           SET DR="7///T;9///^S X=XMZ;10///^S X=HBHCDT"
           SET DA=""
           FOR 
               SET DA=$ORDER(^HBHC(632,"AC","F",DA))
               if DA=""
                   QUIT 
               DO ^DIE
 +7       ; Only update if Sanctioned MFH site
 +8        IF $PIECE($GET(^HBHC(631.9,1,0)),U,9)]""
               SET DIE="^HBHC(633.2,"
               SET DR="27///T;29///^S X=XMZ;30///^S X=HBHCDT"
               SET DA=""
               FOR 
                   SET DA=$ORDER(^HBHC(633.2,"AC","F",DA))
                   if DA=""
                       QUIT 
                   DO ^DIE
 +9       ; Set Last Mail Message Date in System Parameters file
 +10       SET $PIECE(^HBHC(631.9,1,0),U,2)=HBHCDT
 +11       SET HBHCFLG=1
 +12       QUIT 
HISTORY   ; Update HBHC(634.6 Transmit History file
 +1        KILL DD,DO
           SET DIC="^HBHC(634.6,"
           SET DIC(0)="L"
           SET DIC("DR")="1///^S X=HBHCDT"
           SET X=HBHCINFO
           DO FILE^DICN
           KILL DO
 +2        QUIT