- 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 Jan 18, 2025@03:47:33 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