TIUUTL ;ISP/RFR - UTILITIES ;Dec 07, 2021@12:31
 ;;1.0;TEXT INTEGRATION UTILITIES;**290,341,289**;Jun 20, 1997;Build 200
 Q
NOTIFY(TIUACT,ODFN,NDFN,TIU,TIUDA,TIUHOLD,OVISIT) ;NOTIFY SUBSCRIBING PACKAGES OF DOCUMENT ACTION
 S TIUACT=$G(TIUACT),ODFN=+$G(ODFN),NDFN=+$G(NDFN),TIUDA=+$G(TIUDA),TIUHOLD=+$G(TIUHOLD),OVISIT=+$G(OVISIT)
 I $D(^TMP("TIUDOCACT",$J)) G:TIUACT="SEND" NSEND G:TIUACT="CLEAR" NCLEAR
 I (TIUACT="")!(ODFN<1) Q
 I '$D(^DPT(ODFN)) Q
 I NDFN>0,'$D(^DPT(NDFN)) Q
 I TIUACT="REASSIGN",NDFN<1 Q
 I '$D(TIU) D GETTIU^TIULD(.TIU,TIUDA) Q:'$D(TIU)
 N TIUDIEN,TIUPNAME
 S TIUPNAME=$P($G(TIU("DOCTYP")),U,2)
 I TIUPNAME="",$D(^TIU(8925,TIUDA,0)) D
 .S TIUDIEN=+$P($G(^TIU(8925,TIUDA,0)),U)
 .I TIUDIEN>0 D
 ..S TIUPNAME=$P($G(^TIU(8925.1,TIUDIEN,0)),U,3)
 ..S:TIUPNAME="" TIUPNAME=$P($G(^TIU(8925.1,TIUDIEN,0)),U)
 I TIUACT'="REASSIGN" K ^TMP("TIUDOCACT",$J)
 S ^TMP("TIUDOCACT",$J,"ACTION")=TIUACT
 I TIUACT'="REASSIGN" D
 .S ^TMP("TIUDOCACT",$J,"PATIENT")=$G(ODFN)
 .S ^TMP("TIUDOCACT",$J,"VISIT")=$S($P($G(TIU("VISIT")),U)>0:$P(TIU("VISIT"),U),1:$P($G(^TIU(8925,TIUDA,0)),U,3))
 .S ^TMP("TIUDOCACT",$J,"DOCUMENT")=TIUDA_U_$G(TIUPNAME)
 I TIUACT="REASSIGN" D
 .N TIUOPAT,TIUOVSTR,TIUNVIEN,TIUODOC
 .S TIUOPAT=$G(^TMP("TIUDOCACT",$J,"PATIENT"))
 .K ^TMP("TIUDOCACT",$J,"PATIENT")
 .S ^TMP("TIUDOCACT",$J,"PATIENT","OLD")=$S(TIUOPAT'="":TIUOPAT,1:ODFN)
 .S ^TMP("TIUDOCACT",$J,"PATIENT","NEW")=$G(NDFN)
 .S TIUOVSTR=$G(^TMP("TIUDOCACT",$J,"VISIT"))
 .K ^TMP("TIUDOCACT",$J,"VISIT")
 .S ^TMP("TIUDOCACT",$J,"VISIT","OLD")=$S(TIUOVSTR'="":TIUOVSTR,1:OVISIT)
 .S TIUNVIEN=$P($G(^TIU(8925,TIUDA,0)),U,3)
 .S ^TMP("TIUDOCACT",$J,"VISIT","NEW")=$S($P($G(TIU("VISIT")),U)>0:$P(TIU("VISIT"),U),1:TIUNVIEN)
 .S TIUODOC=$G(^TMP("TIUDOCACT",$J,"DOCUMENT"))
 .K ^TMP("TIUDOCACT",$J,"DOCUMENT")
 .S ^TMP("TIUDOCACT",$J,"DOCUMENT","OLD")=TIUODOC
 .S ^TMP("TIUDOCACT",$J,"DOCUMENT","NEW")=TIUDA_U_$G(TIUPNAME)
 Q:TIUHOLD
 N TIUDFN,TIUVSIT,TIUAPMDA
 S TIUDFN=$S($G(^TMP("TIUDOCACT",$J,"PATIENT"))'="":^TMP("TIUDOCACT",$J,"PATIENT"),$G(^TMP("TIUDOCACT",$J,"PATIENT","OLD"))'="":^TMP("TIUDOCACT",$J,"PATIENT","OLD"),1:"")
 S TIUVSIT=$S($G(^TMP("TIUDOCACT",$J,"VISIT"))'="":^TMP("TIUDOCACT",$J,"VISIT"),$G(^TMP("TIUDOCACT",$J,"VISIT","OLD"))'="":^TMP("TIUDOCACT",$J,"VISIT","OLD"),1:"")
 S TIUAPMDA=$S($G(^TMP("TIUDOCACT",$J,"DOCUMENT"))'="":^TMP("TIUDOCACT",$J,"DOCUMENT"),$G(^TMP("TIUDOCACT",$J,"DOCUMENT","OLD"))'="":^TMP("TIUDOCACT",$J,"DOCUMENT","OLD"),1:"")
 D ANPKGMSG(TIUDFN,TIUVSIT,TIUAPMDA,TIUACT)
NSEND ;SEND THE NOTIFICATION
 N DIC,X
 S DIC=101,X="TIU DOCUMENT ACTION EVENT"
 D EN^XQOR
NCLEAR ;CLEAR DATA
 K ^TMP("TIUDOCACT",$J)
 Q
ANPKGMSG(TIUDFN,TIUVSIT,TIUDOC,TIUACT) ;RETRIEVE ANCILLARY PACKAGES' MESSAGE(S)
 N DIC,X
 K ^TMP("TIUDOCDIS",$J)
 S ^TMP("TIUDOCDIS",$J,"PATIENT")=TIUDFN
 S ^TMP("TIUDOCDIS",$J,"VISIT")=TIUVSIT
 S ^TMP("TIUDOCDIS",$J,"DOCUMENT")=TIUDOC
 S ^TMP("TIUDOCDIS",$J,"ACTION")=TIUACT
 S DIC=101,X="TIU DOCUMENT ACTION DISPLAY"
 D EN^XQOR
 I '$$BROKER^XWBLIB D
 .N TIULCNT,TIUCNTNU,TIUAPKG,TIULINE
 .S TIULCNT=0,TIUAPKG="" F  S TIUAPKG=$O(^TMP("TIUDOCDIS",$J,"MESSAGES",TIUAPKG)) Q:TIUAPKG=""  D
 ..Q:'$G(^TMP("TIUDOCDIS",$J,"MESSAGES",TIUAPKG))
 ..I TIULCNT=0!((TIULCNT+$G(^TMP("TIUDOCDIS",$J,"MESSAGES",TIUAPKG))+1)>22) W ! S TIUCNTNU=$$READ^TIUU("EA","Press RETURN to continue..."),TIULCNT=0
 ..W !,TIUAPKG_":" S TIULCNT=TIULCNT+1
 ..S TIULINE=0 F  S TIULINE=$O(^TMP("TIUDOCDIS",$J,"MESSAGES",TIUAPKG,TIULINE)) Q:'+TIULINE  D
 ...W !,$G(^TMP("TIUDOCDIS",$J,"MESSAGES",TIUAPKG,TIULINE)) S TIULCNT=TIULCNT+1
 ...I TIULCNT=22 W ! S TIUCNTNU=$$READ^TIUU("EA","Press RETURN to continue..."),TIULCNT=0
 ..W ! S TIULCNT=TIULCNT+1
 .K ^TMP("TIUDOCDIS",$J)
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HTIUUTL   3752     printed  Sep 23, 2025@20:22:44                                                                                                                                                                                                      Page 2
TIUUTL    ;ISP/RFR - UTILITIES ;Dec 07, 2021@12:31
 +1       ;;1.0;TEXT INTEGRATION UTILITIES;**290,341,289**;Jun 20, 1997;Build 200
 +2        QUIT 
NOTIFY(TIUACT,ODFN,NDFN,TIU,TIUDA,TIUHOLD,OVISIT) ;NOTIFY SUBSCRIBING PACKAGES OF DOCUMENT ACTION
 +1        SET TIUACT=$GET(TIUACT)
           SET ODFN=+$GET(ODFN)
           SET NDFN=+$GET(NDFN)
           SET TIUDA=+$GET(TIUDA)
           SET TIUHOLD=+$GET(TIUHOLD)
           SET OVISIT=+$GET(OVISIT)
 +2        IF $DATA(^TMP("TIUDOCACT",$JOB))
               if TIUACT="SEND"
                   GOTO NSEND
               if TIUACT="CLEAR"
                   GOTO NCLEAR
 +3        IF (TIUACT="")!(ODFN<1)
               QUIT 
 +4        IF '$DATA(^DPT(ODFN))
               QUIT 
 +5        IF NDFN>0
               IF '$DATA(^DPT(NDFN))
                   QUIT 
 +6        IF TIUACT="REASSIGN"
               IF NDFN<1
                   QUIT 
 +7        IF '$DATA(TIU)
               DO GETTIU^TIULD(.TIU,TIUDA)
               if '$DATA(TIU)
                   QUIT 
 +8        NEW TIUDIEN,TIUPNAME
 +9        SET TIUPNAME=$PIECE($GET(TIU("DOCTYP")),U,2)
 +10       IF TIUPNAME=""
               IF $DATA(^TIU(8925,TIUDA,0))
                   Begin DoDot:1
 +11                   SET TIUDIEN=+$PIECE($GET(^TIU(8925,TIUDA,0)),U)
 +12                   IF TIUDIEN>0
                           Begin DoDot:2
 +13                           SET TIUPNAME=$PIECE($GET(^TIU(8925.1,TIUDIEN,0)),U,3)
 +14                           if TIUPNAME=""
                                   SET TIUPNAME=$PIECE($GET(^TIU(8925.1,TIUDIEN,0)),U)
                           End DoDot:2
                   End DoDot:1
 +15       IF TIUACT'="REASSIGN"
               KILL ^TMP("TIUDOCACT",$JOB)
 +16       SET ^TMP("TIUDOCACT",$JOB,"ACTION")=TIUACT
 +17       IF TIUACT'="REASSIGN"
               Begin DoDot:1
 +18               SET ^TMP("TIUDOCACT",$JOB,"PATIENT")=$GET(ODFN)
 +19               SET ^TMP("TIUDOCACT",$JOB,"VISIT")=$SELECT($PIECE($GET(TIU("VISIT")),U)>0:$PIECE(TIU("VISIT"),U),1:$PIECE($GET(^TIU(8925,TIUDA,0)),U,3))
 +20               SET ^TMP("TIUDOCACT",$JOB,"DOCUMENT")=TIUDA_U_$GET(TIUPNAME)
               End DoDot:1
 +21       IF TIUACT="REASSIGN"
               Begin DoDot:1
 +22               NEW TIUOPAT,TIUOVSTR,TIUNVIEN,TIUODOC
 +23               SET TIUOPAT=$GET(^TMP("TIUDOCACT",$JOB,"PATIENT"))
 +24               KILL ^TMP("TIUDOCACT",$JOB,"PATIENT")
 +25               SET ^TMP("TIUDOCACT",$JOB,"PATIENT","OLD")=$SELECT(TIUOPAT'="":TIUOPAT,1:ODFN)
 +26               SET ^TMP("TIUDOCACT",$JOB,"PATIENT","NEW")=$GET(NDFN)
 +27               SET TIUOVSTR=$GET(^TMP("TIUDOCACT",$JOB,"VISIT"))
 +28               KILL ^TMP("TIUDOCACT",$JOB,"VISIT")
 +29               SET ^TMP("TIUDOCACT",$JOB,"VISIT","OLD")=$SELECT(TIUOVSTR'="":TIUOVSTR,1:OVISIT)
 +30               SET TIUNVIEN=$PIECE($GET(^TIU(8925,TIUDA,0)),U,3)
 +31               SET ^TMP("TIUDOCACT",$JOB,"VISIT","NEW")=$SELECT($PIECE($GET(TIU("VISIT")),U)>0:$PIECE(TIU("VISIT"),U),1:TIUNVIEN)
 +32               SET TIUODOC=$GET(^TMP("TIUDOCACT",$JOB,"DOCUMENT"))
 +33               KILL ^TMP("TIUDOCACT",$JOB,"DOCUMENT")
 +34               SET ^TMP("TIUDOCACT",$JOB,"DOCUMENT","OLD")=TIUODOC
 +35               SET ^TMP("TIUDOCACT",$JOB,"DOCUMENT","NEW")=TIUDA_U_$GET(TIUPNAME)
               End DoDot:1
 +36       if TIUHOLD
               QUIT 
 +37       NEW TIUDFN,TIUVSIT,TIUAPMDA
 +38       SET TIUDFN=$SELECT($GET(^TMP("TIUDOCACT",$JOB,"PATIENT"))'="":^TMP("TIUDOCACT",$JOB,"PATIENT"),$GET(^TMP("TIUDOCACT",$JOB,"PATIENT","OLD"))'="":^TMP("TIUDOCACT",$JOB,"PATIENT","OLD"),1:"")
 +39       SET TIUVSIT=$SELECT($GET(^TMP("TIUDOCACT",$JOB,"VISIT"))'="":^TMP("TIUDOCACT",$JOB,"VISIT"),$GET(^TMP("TIUDOCACT",$JOB,"VISIT","OLD"))'="":^TMP("TIUDOCACT",$JOB,"VISIT","OLD"),1:"")
 +40       SET TIUAPMDA=$SELECT($GET(^TMP("TIUDOCACT",$JOB,"DOCUMENT"))'="":^TMP("TIUDOCACT",$JOB,"DOCUMENT"),$GET(^TMP("TIUDOCACT",$JOB,"DOCUMENT","OLD"))'="":^TMP("TIUDOCACT",$JOB,"DOCUMENT","OLD"),1:"")
 +41       DO ANPKGMSG(TIUDFN,TIUVSIT,TIUAPMDA,TIUACT)
NSEND     ;SEND THE NOTIFICATION
 +1        NEW DIC,X
 +2        SET DIC=101
           SET X="TIU DOCUMENT ACTION EVENT"
 +3        DO EN^XQOR
NCLEAR    ;CLEAR DATA
 +1        KILL ^TMP("TIUDOCACT",$JOB)
 +2        QUIT 
ANPKGMSG(TIUDFN,TIUVSIT,TIUDOC,TIUACT) ;RETRIEVE ANCILLARY PACKAGES' MESSAGE(S)
 +1        NEW DIC,X
 +2        KILL ^TMP("TIUDOCDIS",$JOB)
 +3        SET ^TMP("TIUDOCDIS",$JOB,"PATIENT")=TIUDFN
 +4        SET ^TMP("TIUDOCDIS",$JOB,"VISIT")=TIUVSIT
 +5        SET ^TMP("TIUDOCDIS",$JOB,"DOCUMENT")=TIUDOC
 +6        SET ^TMP("TIUDOCDIS",$JOB,"ACTION")=TIUACT
 +7        SET DIC=101
           SET X="TIU DOCUMENT ACTION DISPLAY"
 +8        DO EN^XQOR
 +9        IF '$$BROKER^XWBLIB
               Begin DoDot:1
 +10               NEW TIULCNT,TIUCNTNU,TIUAPKG,TIULINE
 +11               SET TIULCNT=0
                   SET TIUAPKG=""
                   FOR 
                       SET TIUAPKG=$ORDER(^TMP("TIUDOCDIS",$JOB,"MESSAGES",TIUAPKG))
                       if TIUAPKG=""
                           QUIT 
                       Begin DoDot:2
 +12                       if '$GET(^TMP("TIUDOCDIS",$JOB,"MESSAGES",TIUAPKG))
                               QUIT 
 +13                       IF TIULCNT=0!((TIULCNT+$GET(^TMP("TIUDOCDIS",$JOB,"MESSAGES",TIUAPKG))+1)>22)
                               WRITE !
                               SET TIUCNTNU=$$READ^TIUU("EA","Press RETURN to continue...")
                               SET TIULCNT=0
 +14                       WRITE !,TIUAPKG_":"
                           SET TIULCNT=TIULCNT+1
 +15                       SET TIULINE=0
                           FOR 
                               SET TIULINE=$ORDER(^TMP("TIUDOCDIS",$JOB,"MESSAGES",TIUAPKG,TIULINE))
                               if '+TIULINE
                                   QUIT 
                               Begin DoDot:3
 +16                               WRITE !,$GET(^TMP("TIUDOCDIS",$JOB,"MESSAGES",TIUAPKG,TIULINE))
                                   SET TIULCNT=TIULCNT+1
 +17                               IF TIULCNT=22
                                       WRITE !
                                       SET TIUCNTNU=$$READ^TIUU("EA","Press RETURN to continue...")
                                       SET TIULCNT=0
                               End DoDot:3
 +18                       WRITE !
                           SET TIULCNT=TIULCNT+1
                       End DoDot:2
 +19               KILL ^TMP("TIUDOCDIS",$JOB)
               End DoDot:1
 +20       QUIT