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 Dec 13, 2024@02:46:24 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