TIUAL1 ;SLC/AJB - TIU Alerts List Manager ; 7/6/05 4:06pm
 ;;1.0;TEXT INTEGRATION UTILITIES;**158,199**;Jun 20, 1997
 ;
 Q
CHNGSRCH ; allows user to change search parameters
 D FULL^VALM1
 W @IOF
 D SETUP^TIUALSET
 I $D(TIU("QUIT")) K TIU("QUIT") S VALMBCK="R" Q
 K ^TMP("TIUDA",$J),^TMP("TIUDOC",$J) D CLEAN^VALM10,INIT,HDR S VALMBG=1
 Q
EDIT ;
 N D,DIV,TIUDA,TIUCHNG,TIUDCSNR,TIUDIV1,TIUESNR,TIUNODE
 N TIUFPRIV,TIUPREF,TIUPRM0,TIUPRM1,TIURQCS,TIUS,TIUSEL,X,Y
 D FULL^VALM1
 I TIU("CNT")=0 W !,"No documents to select." H 3 Q
 S TIUSEL=$P(XQORNOD(0),"=",2)
 I TIUSEL="" D  Q:TIUSEL=U!($D(DIRUT))
 . N DIR,X,Y
 . S DIR("A")="Select Document: (1-"_VALMLST_") "
 . S DIR(0)="NA^1:"_VALMLST
 . D ^DIR S TIUSEL=Y
 I $A($E(TIUSEL,$L(TIUSEL)))<48!($A($E(TIUSEL,$L(TIUSEL)))>57) S TIUSEL=$E(TIUSEL,1,$L(TIUSEL)-1)
 F X=1:1  Q:$P(TIUSEL,",",X)=""  S TIUC($P(TIUSEL,",",X))=$O(@VALMAR@("IDX",$P(TIUSEL,",",X),""))
 S TIUDA=TIUC(TIUSEL)
 D EDIT1^TIURA
 D UPDATE^TIUALSET
 Q
EN ; main entry point for TIU ALERTS
 N %DT,D0,POP,TIU,TIUC,TIUTMP,X,Y
 K ^TMP("TIUDA",$J),^TMP("TIUDOC",$J)
 D SETUP^TIUALSET Q:$D(TIU("QUIT"))
 D EN^VALM("TIU ALERTS")
 K ^TMP("TIUDA",$J),^TMP("TIUDOC",$J)
 Q
EVAL(TIUDA) ;
 N TIUCHK,TIUCNT,TIUY
 S TIUCHK="" F  S TIUCHK=$O(TIU("S",TIUCHK)) Q:TIUCHK=""  I $P(TIUD0,U,5)=+TIU("S",TIUCHK),$P(TIUD13,U)'<TIU("D",1),$P(TIUD13,U)'>TIU("D",2) S TIUY=1
 I $G(TIUY),$P(TIUCAT,U)="CA",$P(TIUD12,U,2)=+TIU("P") Q 1
 I $G(TIUY),$P(TIUCAT,U)="AE",$D(^TIU(8925.7,"AE",TIUDA,TIU("P"))) Q 1
 I $G(TIUY),$P(TIUCAT,U)="CS",$P(TIUCAT,U,2)="Expected Cosigner",$P(TIUD12,U,8)=+TIU("P") Q 1
 I $G(TIUY),$P(TIUCAT,U)="CS",$P(TIUCAT,U,2)="Attending Physician",$P(TIUD12,U,9)=+TIU("P") Q 1
 I $G(TIUY),$P(TIUCAT,U)="CS",$P(TIUCAT,U,3)="Attending Physician",$P(TIUD12,U,9)=+TIU("P") Q 1
 Q +$G(TIUY)
EXIT ; exit code
 Q
EXPND ; expand code
 Q
FMTDT(DATE) ; formats date
 N TMPDATE
 S TMPDATE=$$FDATE^VALM1(DATE)
 I $P(TMPDATE,"/")="00",$P(TMPDATE,"/",2)="00" Q $$FMTE^XLFDT(DATE,"D")
 I $P(TMPDATE,"/",2)="00" S TMPDATE=$E(TMPDATE,1,3)_$E(TMPDATE,7,8)
 Q TMPDATE
HDR ; header code
 N HDRTITLE,X,Y
 S HDRTITLE(1)=$S(TIU("S")=1:$$UPPER^VALM1($P(TIU("S",1),U,3))_" Documents",1:"Clinical Documents")
 S HDRTITLE(2)=TIU("CNT")_" "_$S(TIU("CNT")=1:"Document",1:"Documents")
 S HDRTITLE(3)="for ("_$E($$GET1^DIQ(200,TIU("P")_",",.01),1,35)_")"_" from "_$$FMTDT(TIU("D",1))_" to "_$$FMTDT(TIU("D",2))
 S (X,Y)=""
 F  S X=$O(TIU("C",X)) Q:X=""  S Y=Y_TIU("C",X)
 S Y="by "_"("_$$UP^XLFSTR($TR($E(Y,2,67),U,","))_")"
 S $P(HDRTITLE(1)," ",IOM-($L(HDRTITLE(1))+$L(HDRTITLE(2))))="",HDRTITLE(1)=HDRTITLE(1)_HDRTITLE(2)
 S VALMHDR(1)=HDRTITLE(1)
 S VALMHDR(2)=$$SETSTR^VALM1(Y,"",(IOM-$L(Y))/2,$L(Y))
 S VALMHDR(3)=$$SETSTR^VALM1(HDRTITLE(3),"",(IOM-$L(HDRTITLE(3)))/2,$L(HDRTITLE(3)))
 D XQORM
 Q
HELP ; help code
 N DIR
 I X="?" S DIR("A")="Enter RETURN to continue or '^' to exit",DIR(0)="E"
 D FULL^VALM1
 W !!,"The following actions are available:"
 W !,"Browse a Document  - View a selected document (if authorized)"
 W !,"Change View        - Modify search criteria"
 W !,"Combination Alerts - Send alerts to expected signers and 3rd parties"
 W !,"Delete Alerts      - Delete a document's alerts"
 W !,"Detailed Display   - View detailed display of a document (if authorized)"
 W !,"Edit a Document    - Edit a selected document (if authorized)"
 W !,"Identify Signers   - Identify/Change Signers of a document (if authorized)"
 W !,"Resend Alerts      - Resend alerts to expected signers"
 W !,"Third Party Alerts - Send alerts to one or more 3rd parties",!
 I $D(DIR("A")) D ^DIR
 S VALMBCK="R"
 Q
INIT ; finds documents and prepares LM display
 N CNT,TIUCNT,TIUDA,TIUDOC,TIUDT,TIUTMP
 S CNT="",(TIUCNT,TIU("CNT"))=0
 S TIU("IOCUOFF")=$C(27)_"[?25l",TIU("IOCUON")=$C(27)_"[?25h"
 W TIU("IOCUOFF")
 W !,"Searching for the documents."
 F  S CNT=$O(TIU("C",CNT)) Q:CNT=""  D INIT2(CNT_TIU("C",CNT))
 S TIUTMP=0,(CNT,TIUDA,TIUDT)=""
 F  S TIUDT=$O(^TMP("TIUDOC",$J,TIUDT)) Q:TIUDT=""  F  S CNT=$O(^TMP("TIUDOC",$J,TIUDT,CNT)) Q:CNT=""  F  S TIUDA=$O(^TMP("TIUDOC",$J,TIUDT,CNT,TIUDA)) Q:TIUDA=""  D
 . N TIUDISP,TIUNODE
 . S TIUTMP=TIUTMP+1
 . W:TIUTMP#3=0 "."
 . S TIUDISP("PATIENT")=$P($P(^TMP("TIUDOC",$J,TIUDT,CNT,TIUDA),U,2),",")_","_$E($P($P(^TMP("TIUDOC",$J,TIUDT,CNT,TIUDA),U,2),",",2),1)
 . S TIUDISP("L4")="("_$E(TIUDISP("PATIENT"))_$E($P($G(^DPT(+$P(^TIU(8925,TIUDA,0),U,2),0)),U,9),6,9)_")"
 . S TIUNODE=^TMP("TIUDOC",$J,TIUDT,CNT,TIUDA)
 . S TIUDISP("TITLE")=$E($S(+TIUNODE>0:"_ "_$P(TIUNODE,U,3),$P(TIUNODE,U)="A":"  |_"_$P(TIUNODE,U,3),1:$P(TIUNODE,U,3)),1,36)
 . S TIUDISP("REFDT")=$$FMTDT($P(^TMP("TIUDOC",$J,TIUDT,CNT,TIUDA),U,4))
 . S TIUDISP("S")=$P(^TMP("TIUDOC",$J,TIUDT,CNT,TIUDA),U,5)
 . S TIUDISP("A/D")=$$GET1^DIQ(8925,TIUDA,1202)
 . S TIUDISP("EC")=$$GET1^DIQ(8925,TIUDA,1208)
 . S TIUDISP("ATT")=$$GET1^DIQ(8925,TIUDA,1209)
 . S TIUDISP("ADS")=$$GET1^DIQ(8925.7,$P(TIUNODE,U,6),.03)
 . S TIUDISP=$$SETSTR^VALM1(TIUTMP,"",1,5)
 . S TIUDISP=$$SETSTR^VALM1(TIUDISP("PATIENT"),TIUDISP,6,26)
 . S TIUDISP=$$SETSTR^VALM1(TIUDISP("L4"),TIUDISP,20,26)
 . S TIUDISP=$$SETSTR^VALM1($E(TIUDISP("TITLE"),1,30),TIUDISP,28,58)
 . S TIUDISP=$$SETSTR^VALM1(TIUDISP("REFDT"),TIUDISP,60,68)
 . S TIUDISP=$$SETSTR^VALM1($$LOW^XLFSTR(TIUDISP("S")),TIUDISP,70,80)
 . S TIUDISP=$$SETSTR^VALM1(TIUTMP,TIUDISP,81,86)
 . S TIUDISP=$$SETSTR^VALM1($E(TIUDISP("A/D"),1,17),TIUDISP,88,105)
 . S TIUDISP=$$SETSTR^VALM1($E($G(TIUDISP("EC")),1,17),TIUDISP,107,124)
 . S TIUDISP=$$SETSTR^VALM1($E($G(TIUDISP("ATT")),1,17),TIUDISP,126,143)
 . S TIUDISP=$$SETSTR^VALM1($E($G(TIUDISP("ADS")),1,15),TIUDISP,145,160)
 . D SET^VALM10(TIUTMP,$E(TIUDISP,1,160),TIUDA)
 S VALMCNT=TIUTMP
 I VALMCNT=0 S VALMCNT=1 D
 . D SET^VALM10(1," ",0)
 . S TIUDOC="No records found to satisfy search criteria."
 . S TIUDOC=$$SETSTR^VALM1(TIUDOC,"",(IOM-$L(TIUDOC))/2,$L(TIUDOC))
 . D SET^VALM10(2,TIUDOC,0)
 W TIU("IOCUON")
 Q
INIT2(TIUCAT) ;
 S TIUDA=""
 I $P(TIUCAT,U)'="AE" F  S TIUDA=$O(^TIU(8925,$P(TIUCAT,U),TIU("P"),TIUDA)) Q:TIUDA=""  D
 . N TIUD0,TIUD12,TIUD13
 . S TIUD0=$G(^TIU(8925,TIUDA,0))
 . S TIUD12=$G(^TIU(8925,TIUDA,12))
 . S TIUD13=$G(^TIU(8925,TIUDA,13))
 . I TIUD0=""!(TIUD12="")!(TIUD13="") Q
 . I $$EVAL(TIUDA) S ^TMP("TIUDA",$J,TIUDA)="",TIU("CNT")=TIU("CNT")+1
 I $P(TIUCAT,U)="AE" F  S TIUDA=$O(^TIU(8925.7,"AE",TIUDA)) Q:TIUDA=""  I $D(^TIU(8925.7,"AE",TIUDA,TIU("P"))) D
 . S TIU("AS")="",TIU("AS")=$O(^TIU(8925.7,"AE",TIUDA,TIU("P"),TIU("AS")))
 . I $P($G(^TIU(8925.7,TIU("AS"),0)),U,4),$P($G(^TIU(8925.7,TIU("AS"),0)),U,5)=TIU("P") Q
 . I TIU("AS")'="",$P($G(^TIU(8925.7,TIU("AS"),0)),"^",9)=1 Q
 . N TIUD0,TIUD12,TIUD13
 . S TIUD0=$G(^TIU(8925,TIUDA,0))
 . S TIUD12=$G(^TIU(8925,TIUDA,12))
 . S TIUD13=$G(^TIU(8925,TIUDA,13))
 . I TIUD0=""!(TIUD12="")!(TIUD13="") Q
 . I $$EVAL(TIUDA) S ^TMP("TIUDA",$J,TIUDA)=""_U_"AE"_U_$G(TIU("AS")),TIU("CNT")=TIU("CNT")+1
 . K TIU("AS")
 F  S TIUDA=$O(^TMP("TIUDA",$J,TIUDA)) Q:TIUDA=""  D
 . I +^TMP("TIUDA",$J,TIUDA)=1 Q
 . N TIUD0,TIUD12,TIUD13
 . S TIUD0=$G(^TIU(8925,TIUDA,0))
 . S TIUD12=$G(^TIU(8925,TIUDA,12))
 . S TIUD13=$G(^TIU(8925,TIUDA,13))
 . I TIUD0=""!(TIUD12="")!(TIUD13="") Q
 . W:TIUCNT#3=0 "."
 . I +$$HASKIDS^TIUSRVLI(TIUDA),$P(^TMP("TIUDA",$J,TIUDA),U,2)'="AE" D  Q
 . . N TMPCNT
 . . S TIUCNT=TIUCNT+1,TMPCNT=TIUCNT
 . . S ^TMP("TIUDA",$J,TIUDA)=1
 . . N CHILD,I,SEQUENCE,TIUI
 . . S CHILD="CHILD",(SEQUENCE,TIUI)=""
 . . D SETKIDS^TIUSRVLI(.CHILD,TIUDA,.TIUI) I $G(TIUI)="" Q
 . . F I=1:1:TIUI I $D(^TMP("TIUDA",$J,+CHILD(I))),'+$G(^TMP("TIUDA",$J,+CHILD(I))) D
 . . . N TIUREFDT
 . . . S TIUCNT=TIUCNT+1
 . . . S ^TMP("TIUDA",$J,+CHILD(I))=1
 . . . S TIUREFDT=+^TIU(8925,+CHILD(I),13)
 . . . I $$GET1^DIQ(8925,+CHILD(I),.01)'["Addendum" S ^TMP("TIUDOC",$J,+TIUD13,TIUCNT,+CHILD(I))="A"_U_$$GET1^DIQ(8925,TIUDA,.02)_U_$$GET1^DIQ(8925,+CHILD(I),.01)_U_TIUREFDT_U_$$GET1^DIQ(8925,+CHILD(I),.05)
 . . . E  S ^TMP("TIUDOC",$J,+TIUD13,TIUCNT,+CHILD(I))="A"_U_$$GET1^DIQ(8925,TIUDA,.02)_U_"Addendum to "_$$GET1^DIQ(8925,TIUDA,.01)_U_TIUREFDT_U_$$GET1^DIQ(8925,+CHILD(I),.05)
 . . S ^TMP("TIUDOC",$J,+TIUD13,TMPCNT,TIUDA)=(TIUCNT-TMPCNT)_U_$$GET1^DIQ(8925,TIUDA,.02)_U_$$GET1^DIQ(8925,TIUDA,.01)_U_+TIUD13_U_$$GET1^DIQ(8925,TIUDA,.05)
 . I $P(^TMP("TIUDA",$J,TIUDA),U,2)="AE"!(+$$HASDAD^TIUSRVLI(TIUDA)) D  Q
 . . N TIUAS
 . . S TIUCNT=TIUCNT+1
 . . S $P(^TMP("TIUDA",$J,TIUDA),U)=1
 . . S TIUAS=$P(^TMP("TIUDA",$J,TIUDA),U,3)
 . . I $$GET1^DIQ(8925,TIUDA,.01)'["Addendum" S ^TMP("TIUDOC",$J,+TIUD13,TIUCNT,TIUDA)=U_$$GET1^DIQ(8925,TIUDA,.02)_U_$$GET1^DIQ(8925,TIUDA,.01)_U_+TIUD13_U_$$GET1^DIQ(8925,TIUDA,.05)_U_TIUAS
 . . E  D
 . . . N PARENT,SEQUENCE,TIUI
 . . . S PARENT="PARENT",(SEQUENCE,TIUI)=""
 . . . D SETDAD^TIUSRVLI(.PARENT,TIUDA,.TIUI) I $G(TIUI)="" Q
 . . . S ^TMP("TIUDOC",$J,+TIUD13,TIUCNT,TIUDA)=U_$$GET1^DIQ(8925,TIUDA,.02)_U_"Addendum to "_$$GET1^DIQ(8925,+PARENT(TIUI),.01)_U_$P(TIUD13,U)_U_$$GET1^DIQ(8925,TIUDA,.05)_U_TIUAS
 . I '+$$HASKIDS^TIUSRVLI(TIUDA),'+$$HASDAD^TIUSRVLI(TIUDA) D  Q
 . . S TIUCNT=TIUCNT+1
 . . S ^TMP("TIUDA",$J,TIUDA)=1
 . . S ^TMP("TIUDOC",$J,+TIUD13,TIUCNT,TIUDA)=U_$$GET1^DIQ(8925,TIUDA,.02)_U_$$GET1^DIQ(8925,TIUDA,.01)_U_$P(TIUD13,U)_U_$$GET1^DIQ(8925,TIUDA,.05)
 Q
LSEXIT ; exit code
 D XQORM
 Q
SELSTAT(Y,PARM,DEF,MENU) ; Select Signature status
 N I,XQORM,X,TIUY
 S XQORM=+$O(^ORD(101,"B",MENU,0))_";ORD(101,"
 I +XQORM'>0 W !,"Status selection unavailable." S TIUY=-1 G STATX
 S XQORM(0)=$G(PARM),XQORM("A")=$S(MENU="TIU STATUS MENU":"Select DOCUMENT STATUS: ",1:"Select SEARCH CATEGORY: ")
 I $S(PARM="F":1,PARM="R":1,1:0) S X=DEF
 S XQORM("B")=DEF D EN^XQORM
 S TIUY=$G(Y)
 I MENU="TIU STATUS MENU",+$G(Y)=1,(+$G(Y(1))=7) S Y=2,Y(2)="8^4843^amended^8"
STATX Q TIUY
XQORM ;
 S XQORM("#")=$O(^ORD(101,"B","TIU ALERTS SELECT",0))_U_"1:"_VALMCNT
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HTIUAL1   9949     printed  Sep 23, 2025@20:15:05                                                                                                                                                                                                      Page 2
TIUAL1    ;SLC/AJB - TIU Alerts List Manager ; 7/6/05 4:06pm
 +1       ;;1.0;TEXT INTEGRATION UTILITIES;**158,199**;Jun 20, 1997
 +2       ;
 +3        QUIT 
CHNGSRCH  ; allows user to change search parameters
 +1        DO FULL^VALM1
 +2        WRITE @IOF
 +3        DO SETUP^TIUALSET
 +4        IF $DATA(TIU("QUIT"))
               KILL TIU("QUIT")
               SET VALMBCK="R"
               QUIT 
 +5        KILL ^TMP("TIUDA",$JOB),^TMP("TIUDOC",$JOB)
           DO CLEAN^VALM10
           DO INIT
           DO HDR
           SET VALMBG=1
 +6        QUIT 
EDIT      ;
 +1        NEW D,DIV,TIUDA,TIUCHNG,TIUDCSNR,TIUDIV1,TIUESNR,TIUNODE
 +2        NEW TIUFPRIV,TIUPREF,TIUPRM0,TIUPRM1,TIURQCS,TIUS,TIUSEL,X,Y
 +3        DO FULL^VALM1
 +4        IF TIU("CNT")=0
               WRITE !,"No documents to select."
               HANG 3
               QUIT 
 +5        SET TIUSEL=$PIECE(XQORNOD(0),"=",2)
 +6        IF TIUSEL=""
               Begin DoDot:1
 +7                NEW DIR,X,Y
 +8                SET DIR("A")="Select Document: (1-"_VALMLST_") "
 +9                SET DIR(0)="NA^1:"_VALMLST
 +10               DO ^DIR
                   SET TIUSEL=Y
               End DoDot:1
               if TIUSEL=U!($DATA(DIRUT))
                   QUIT 
 +11       IF $ASCII($EXTRACT(TIUSEL,$LENGTH(TIUSEL)))<48!($ASCII($EXTRACT(TIUSEL,$LENGTH(TIUSEL)))>57)
               SET TIUSEL=$EXTRACT(TIUSEL,1,$LENGTH(TIUSEL)-1)
 +12       FOR X=1:1
               if $PIECE(TIUSEL,",",X)=""
                   QUIT 
               SET TIUC($PIECE(TIUSEL,",",X))=$ORDER(@VALMAR@("IDX",$PIECE(TIUSEL,",",X),""))
 +13       SET TIUDA=TIUC(TIUSEL)
 +14       DO EDIT1^TIURA
 +15       DO UPDATE^TIUALSET
 +16       QUIT 
EN        ; main entry point for TIU ALERTS
 +1        NEW %DT,D0,POP,TIU,TIUC,TIUTMP,X,Y
 +2        KILL ^TMP("TIUDA",$JOB),^TMP("TIUDOC",$JOB)
 +3        DO SETUP^TIUALSET
           if $DATA(TIU("QUIT"))
               QUIT 
 +4        DO EN^VALM("TIU ALERTS")
 +5        KILL ^TMP("TIUDA",$JOB),^TMP("TIUDOC",$JOB)
 +6        QUIT 
EVAL(TIUDA) ;
 +1        NEW TIUCHK,TIUCNT,TIUY
 +2        SET TIUCHK=""
           FOR 
               SET TIUCHK=$ORDER(TIU("S",TIUCHK))
               if TIUCHK=""
                   QUIT 
               IF $PIECE(TIUD0,U,5)=+TIU("S",TIUCHK)
                   IF $PIECE(TIUD13,U)'<TIU("D",1)
                       IF $PIECE(TIUD13,U)'>TIU("D",2)
                           SET TIUY=1
 +3        IF $GET(TIUY)
               IF $PIECE(TIUCAT,U)="CA"
                   IF $PIECE(TIUD12,U,2)=+TIU("P")
                       QUIT 1
 +4        IF $GET(TIUY)
               IF $PIECE(TIUCAT,U)="AE"
                   IF $DATA(^TIU(8925.7,"AE",TIUDA,TIU("P")))
                       QUIT 1
 +5        IF $GET(TIUY)
               IF $PIECE(TIUCAT,U)="CS"
                   IF $PIECE(TIUCAT,U,2)="Expected Cosigner"
                       IF $PIECE(TIUD12,U,8)=+TIU("P")
                           QUIT 1
 +6        IF $GET(TIUY)
               IF $PIECE(TIUCAT,U)="CS"
                   IF $PIECE(TIUCAT,U,2)="Attending Physician"
                       IF $PIECE(TIUD12,U,9)=+TIU("P")
                           QUIT 1
 +7        IF $GET(TIUY)
               IF $PIECE(TIUCAT,U)="CS"
                   IF $PIECE(TIUCAT,U,3)="Attending Physician"
                       IF $PIECE(TIUD12,U,9)=+TIU("P")
                           QUIT 1
 +8        QUIT +$GET(TIUY)
EXIT      ; exit code
 +1        QUIT 
EXPND     ; expand code
 +1        QUIT 
FMTDT(DATE) ; formats date
 +1        NEW TMPDATE
 +2        SET TMPDATE=$$FDATE^VALM1(DATE)
 +3        IF $PIECE(TMPDATE,"/")="00"
               IF $PIECE(TMPDATE,"/",2)="00"
                   QUIT $$FMTE^XLFDT(DATE,"D")
 +4        IF $PIECE(TMPDATE,"/",2)="00"
               SET TMPDATE=$EXTRACT(TMPDATE,1,3)_$EXTRACT(TMPDATE,7,8)
 +5        QUIT TMPDATE
HDR       ; header code
 +1        NEW HDRTITLE,X,Y
 +2        SET HDRTITLE(1)=$SELECT(TIU("S")=1:$$UPPER^VALM1($PIECE(TIU("S",1),U,3))_" Documents",1:"Clinical Documents")
 +3        SET HDRTITLE(2)=TIU("CNT")_" "_$SELECT(TIU("CNT")=1:"Document",1:"Documents")
 +4        SET HDRTITLE(3)="for ("_$EXTRACT($$GET1^DIQ(200,TIU("P")_",",.01),1,35)_")"_" from "_$$FMTDT(TIU("D",1))_" to "_$$FMTDT(TIU("D",2))
 +5        SET (X,Y)=""
 +6        FOR 
               SET X=$ORDER(TIU("C",X))
               if X=""
                   QUIT 
               SET Y=Y_TIU("C",X)
 +7        SET Y="by "_"("_$$UP^XLFSTR($TRANSLATE($EXTRACT(Y,2,67),U,","))_")"
 +8        SET $PIECE(HDRTITLE(1)," ",IOM-($LENGTH(HDRTITLE(1))+$LENGTH(HDRTITLE(2))))=""
           SET HDRTITLE(1)=HDRTITLE(1)_HDRTITLE(2)
 +9        SET VALMHDR(1)=HDRTITLE(1)
 +10       SET VALMHDR(2)=$$SETSTR^VALM1(Y,"",(IOM-$LENGTH(Y))/2,$LENGTH(Y))
 +11       SET VALMHDR(3)=$$SETSTR^VALM1(HDRTITLE(3),"",(IOM-$LENGTH(HDRTITLE(3)))/2,$LENGTH(HDRTITLE(3)))
 +12       DO XQORM
 +13       QUIT 
HELP      ; help code
 +1        NEW DIR
 +2        IF X="?"
               SET DIR("A")="Enter RETURN to continue or '^' to exit"
               SET DIR(0)="E"
 +3        DO FULL^VALM1
 +4        WRITE !!,"The following actions are available:"
 +5        WRITE !,"Browse a Document  - View a selected document (if authorized)"
 +6        WRITE !,"Change View        - Modify search criteria"
 +7        WRITE !,"Combination Alerts - Send alerts to expected signers and 3rd parties"
 +8        WRITE !,"Delete Alerts      - Delete a document's alerts"
 +9        WRITE !,"Detailed Display   - View detailed display of a document (if authorized)"
 +10       WRITE !,"Edit a Document    - Edit a selected document (if authorized)"
 +11       WRITE !,"Identify Signers   - Identify/Change Signers of a document (if authorized)"
 +12       WRITE !,"Resend Alerts      - Resend alerts to expected signers"
 +13       WRITE !,"Third Party Alerts - Send alerts to one or more 3rd parties",!
 +14       IF $DATA(DIR("A"))
               DO ^DIR
 +15       SET VALMBCK="R"
 +16       QUIT 
INIT      ; finds documents and prepares LM display
 +1        NEW CNT,TIUCNT,TIUDA,TIUDOC,TIUDT,TIUTMP
 +2        SET CNT=""
           SET (TIUCNT,TIU("CNT"))=0
 +3        SET TIU("IOCUOFF")=$CHAR(27)_"[?25l"
           SET TIU("IOCUON")=$CHAR(27)_"[?25h"
 +4        WRITE TIU("IOCUOFF")
 +5        WRITE !,"Searching for the documents."
 +6        FOR 
               SET CNT=$ORDER(TIU("C",CNT))
               if CNT=""
                   QUIT 
               DO INIT2(CNT_TIU("C",CNT))
 +7        SET TIUTMP=0
           SET (CNT,TIUDA,TIUDT)=""
 +8        FOR 
               SET TIUDT=$ORDER(^TMP("TIUDOC",$JOB,TIUDT))
               if TIUDT=""
                   QUIT 
               FOR 
                   SET CNT=$ORDER(^TMP("TIUDOC",$JOB,TIUDT,CNT))
                   if CNT=""
                       QUIT 
                   FOR 
                       SET TIUDA=$ORDER(^TMP("TIUDOC",$JOB,TIUDT,CNT,TIUDA))
                       if TIUDA=""
                           QUIT 
                       Begin DoDot:1
 +9                        NEW TIUDISP,TIUNODE
 +10                       SET TIUTMP=TIUTMP+1
 +11                       if TIUTMP#3=0
                               WRITE "."
 +12                       SET TIUDISP("PATIENT")=$PIECE($PIECE(^TMP("TIUDOC",$JOB,TIUDT,CNT,TIUDA),U,2),",")_","_$EXTRACT($PIECE($PIECE(^TMP("TIUDOC",$JOB,TIUDT,CNT,TIUDA),U,2),",",2),1)
 +13                       SET TIUDISP("L4")="("_$EXTRACT(TIUDISP("PATIENT"))_$EXTRACT($PIECE($GET(^DPT(+$PIECE(^TIU(8925,TIUDA,0),U,2),0)),U,9),6,9)_")"
 +14                       SET TIUNODE=^TMP("TIUDOC",$JOB,TIUDT,CNT,TIUDA)
 +15                       SET TIUDISP("TITLE")=$EXTRACT($SELECT(+TIUNODE>0:"_ "_$PIECE(TIUNODE,U,3),$PIECE(TIUNODE,U)="A":"  |_"_$PIECE(TIUNODE,U,3),1:$PIECE(TIUNODE,U,3)),1,36)
 +16                       SET TIUDISP("REFDT")=$$FMTDT($PIECE(^TMP("TIUDOC",$JOB,TIUDT,CNT,TIUDA),U,4))
 +17                       SET TIUDISP("S")=$PIECE(^TMP("TIUDOC",$JOB,TIUDT,CNT,TIUDA),U,5)
 +18                       SET TIUDISP("A/D")=$$GET1^DIQ(8925,TIUDA,1202)
 +19                       SET TIUDISP("EC")=$$GET1^DIQ(8925,TIUDA,1208)
 +20                       SET TIUDISP("ATT")=$$GET1^DIQ(8925,TIUDA,1209)
 +21                       SET TIUDISP("ADS")=$$GET1^DIQ(8925.7,$PIECE(TIUNODE,U,6),.03)
 +22                       SET TIUDISP=$$SETSTR^VALM1(TIUTMP,"",1,5)
 +23                       SET TIUDISP=$$SETSTR^VALM1(TIUDISP("PATIENT"),TIUDISP,6,26)
 +24                       SET TIUDISP=$$SETSTR^VALM1(TIUDISP("L4"),TIUDISP,20,26)
 +25                       SET TIUDISP=$$SETSTR^VALM1($EXTRACT(TIUDISP("TITLE"),1,30),TIUDISP,28,58)
 +26                       SET TIUDISP=$$SETSTR^VALM1(TIUDISP("REFDT"),TIUDISP,60,68)
 +27                       SET TIUDISP=$$SETSTR^VALM1($$LOW^XLFSTR(TIUDISP("S")),TIUDISP,70,80)
 +28                       SET TIUDISP=$$SETSTR^VALM1(TIUTMP,TIUDISP,81,86)
 +29                       SET TIUDISP=$$SETSTR^VALM1($EXTRACT(TIUDISP("A/D"),1,17),TIUDISP,88,105)
 +30                       SET TIUDISP=$$SETSTR^VALM1($EXTRACT($GET(TIUDISP("EC")),1,17),TIUDISP,107,124)
 +31                       SET TIUDISP=$$SETSTR^VALM1($EXTRACT($GET(TIUDISP("ATT")),1,17),TIUDISP,126,143)
 +32                       SET TIUDISP=$$SETSTR^VALM1($EXTRACT($GET(TIUDISP("ADS")),1,15),TIUDISP,145,160)
 +33                       DO SET^VALM10(TIUTMP,$EXTRACT(TIUDISP,1,160),TIUDA)
                       End DoDot:1
 +34       SET VALMCNT=TIUTMP
 +35       IF VALMCNT=0
               SET VALMCNT=1
               Begin DoDot:1
 +36               DO SET^VALM10(1," ",0)
 +37               SET TIUDOC="No records found to satisfy search criteria."
 +38               SET TIUDOC=$$SETSTR^VALM1(TIUDOC,"",(IOM-$LENGTH(TIUDOC))/2,$LENGTH(TIUDOC))
 +39               DO SET^VALM10(2,TIUDOC,0)
               End DoDot:1
 +40       WRITE TIU("IOCUON")
 +41       QUIT 
INIT2(TIUCAT) ;
 +1        SET TIUDA=""
 +2        IF $PIECE(TIUCAT,U)'="AE"
               FOR 
                   SET TIUDA=$ORDER(^TIU(8925,$PIECE(TIUCAT,U),TIU("P"),TIUDA))
                   if TIUDA=""
                       QUIT 
                   Begin DoDot:1
 +3                    NEW TIUD0,TIUD12,TIUD13
 +4                    SET TIUD0=$GET(^TIU(8925,TIUDA,0))
 +5                    SET TIUD12=$GET(^TIU(8925,TIUDA,12))
 +6                    SET TIUD13=$GET(^TIU(8925,TIUDA,13))
 +7                    IF TIUD0=""!(TIUD12="")!(TIUD13="")
                           QUIT 
 +8                    IF $$EVAL(TIUDA)
                           SET ^TMP("TIUDA",$JOB,TIUDA)=""
                           SET TIU("CNT")=TIU("CNT")+1
                   End DoDot:1
 +9        IF $PIECE(TIUCAT,U)="AE"
               FOR 
                   SET TIUDA=$ORDER(^TIU(8925.7,"AE",TIUDA))
                   if TIUDA=""
                       QUIT 
                   IF $DATA(^TIU(8925.7,"AE",TIUDA,TIU("P")))
                       Begin DoDot:1
 +10                       SET TIU("AS")=""
                           SET TIU("AS")=$ORDER(^TIU(8925.7,"AE",TIUDA,TIU("P"),TIU("AS")))
 +11                       IF $PIECE($GET(^TIU(8925.7,TIU("AS"),0)),U,4)
                               IF $PIECE($GET(^TIU(8925.7,TIU("AS"),0)),U,5)=TIU("P")
                                   QUIT 
 +12                       IF TIU("AS")'=""
                               IF $PIECE($GET(^TIU(8925.7,TIU("AS"),0)),"^",9)=1
                                   QUIT 
 +13                       NEW TIUD0,TIUD12,TIUD13
 +14                       SET TIUD0=$GET(^TIU(8925,TIUDA,0))
 +15                       SET TIUD12=$GET(^TIU(8925,TIUDA,12))
 +16                       SET TIUD13=$GET(^TIU(8925,TIUDA,13))
 +17                       IF TIUD0=""!(TIUD12="")!(TIUD13="")
                               QUIT 
 +18                       IF $$EVAL(TIUDA)
                               SET ^TMP("TIUDA",$JOB,TIUDA)=""_U_"AE"_U_$GET(TIU("AS"))
                               SET TIU("CNT")=TIU("CNT")+1
 +19                       KILL TIU("AS")
                       End DoDot:1
 +20       FOR 
               SET TIUDA=$ORDER(^TMP("TIUDA",$JOB,TIUDA))
               if TIUDA=""
                   QUIT 
               Begin DoDot:1
 +21               IF +^TMP("TIUDA",$JOB,TIUDA)=1
                       QUIT 
 +22               NEW TIUD0,TIUD12,TIUD13
 +23               SET TIUD0=$GET(^TIU(8925,TIUDA,0))
 +24               SET TIUD12=$GET(^TIU(8925,TIUDA,12))
 +25               SET TIUD13=$GET(^TIU(8925,TIUDA,13))
 +26               IF TIUD0=""!(TIUD12="")!(TIUD13="")
                       QUIT 
 +27               if TIUCNT#3=0
                       WRITE "."
 +28               IF +$$HASKIDS^TIUSRVLI(TIUDA)
                       IF $PIECE(^TMP("TIUDA",$JOB,TIUDA),U,2)'="AE"
                           Begin DoDot:2
 +29                           NEW TMPCNT
 +30                           SET TIUCNT=TIUCNT+1
                               SET TMPCNT=TIUCNT
 +31                           SET ^TMP("TIUDA",$JOB,TIUDA)=1
 +32                           NEW CHILD,I,SEQUENCE,TIUI
 +33                           SET CHILD="CHILD"
                               SET (SEQUENCE,TIUI)=""
 +34                           DO SETKIDS^TIUSRVLI(.CHILD,TIUDA,.TIUI)
                               IF $GET(TIUI)=""
                                   QUIT 
 +35                           FOR I=1:1:TIUI
                                   IF $DATA(^TMP("TIUDA",$JOB,+CHILD(I)))
                                       IF '+$GET(^TMP("TIUDA",$JOB,+CHILD(I)))
                                           Begin DoDot:3
 +36                                           NEW TIUREFDT
 +37                                           SET TIUCNT=TIUCNT+1
 +38                                           SET ^TMP("TIUDA",$JOB,+CHILD(I))=1
 +39                                           SET TIUREFDT=+^TIU(8925,+CHILD(I),13)
 +40                                           IF $$GET1^DIQ(8925,+CHILD(I),.01)'["Addendum"
                                                   SET ^TMP("TIUDOC",$JOB,+TIUD13,TIUCNT,+CHILD(I))="A"_U_$$GET1^DIQ(8925,TIUDA,.02)_U_$$GET1^DIQ(8925,+CHILD(I),.01)_U_TIUREFDT_U_$$GET1^DIQ(8925,+CHILD(I),.05)
 +41                                          IF '$TEST
                                                   SET ^TMP("TIUDOC",$JOB,+TIUD13,TIUCNT,+CHILD(I))="A"_U_$$GET1^DIQ(8925,TIUDA,.02)_U_"Addendum to "_$$GET1^DIQ(8925,TIUDA,.01)_U_TIUREFDT_U_$$GET1^DIQ(8925,+CHILD(I),.05)
                                           End DoDot:3
 +42                           SET ^TMP("TIUDOC",$JOB,+TIUD13,TMPCNT,TIUDA)=(TIUCNT-TMPCNT)_U_$$GET1^DIQ(8925,TIUDA,.02)_U_$$GET1^DIQ(8925,TIUDA,.01)_U_+TIUD13_U_$$GET1^DIQ(8925,TIUDA,.05)
                           End DoDot:2
                           QUIT 
 +43               IF $PIECE(^TMP("TIUDA",$JOB,TIUDA),U,2)="AE"!(+$$HASDAD^TIUSRVLI(TIUDA))
                       Begin DoDot:2
 +44                       NEW TIUAS
 +45                       SET TIUCNT=TIUCNT+1
 +46                       SET $PIECE(^TMP("TIUDA",$JOB,TIUDA),U)=1
 +47                       SET TIUAS=$PIECE(^TMP("TIUDA",$JOB,TIUDA),U,3)
 +48                       IF $$GET1^DIQ(8925,TIUDA,.01)'["Addendum"
                               SET ^TMP("TIUDOC",$JOB,+TIUD13,TIUCNT,TIUDA)=U_$$GET1^DIQ(8925,TIUDA,.02)_U_$$GET1^DIQ(8925,TIUDA,.01)_U_+TIUD13_U_$$GET1^DIQ(8925,TIUDA,.05)_U_TIUAS
 +49                      IF '$TEST
                               Begin DoDot:3
 +50                               NEW PARENT,SEQUENCE,TIUI
 +51                               SET PARENT="PARENT"
                                   SET (SEQUENCE,TIUI)=""
 +52                               DO SETDAD^TIUSRVLI(.PARENT,TIUDA,.TIUI)
                                   IF $GET(TIUI)=""
                                       QUIT 
 +53                               SET ^TMP("TIUDOC",$JOB,+TIUD13,TIUCNT,TIUDA)=U_$$GET1^DIQ(8925,TIUDA,.02)_U_"Addendum to "_$$GET1^DIQ(8925,+PARENT(TIUI),.01)_U_$PIECE(TIUD13,U)_U_$$GET1^DIQ(8925,TIUDA,.05)_U_TIUAS
                               End DoDot:3
                       End DoDot:2
                       QUIT 
 +54               IF '+$$HASKIDS^TIUSRVLI(TIUDA)
                       IF '+$$HASDAD^TIUSRVLI(TIUDA)
                           Begin DoDot:2
 +55                           SET TIUCNT=TIUCNT+1
 +56                           SET ^TMP("TIUDA",$JOB,TIUDA)=1
 +57                           SET ^TMP("TIUDOC",$JOB,+TIUD13,TIUCNT,TIUDA)=U_$$GET1^DIQ(8925,TIUDA,.02)_U_$$GET1^DIQ(8925,TIUDA,.01)_U_$PIECE(TIUD13,U)_U_$$GET1^DIQ(8925,TIUDA,.05)
                           End DoDot:2
                           QUIT 
               End DoDot:1
 +58       QUIT 
LSEXIT    ; exit code
 +1        DO XQORM
 +2        QUIT 
SELSTAT(Y,PARM,DEF,MENU) ; Select Signature status
 +1        NEW I,XQORM,X,TIUY
 +2        SET XQORM=+$ORDER(^ORD(101,"B",MENU,0))_";ORD(101,"
 +3        IF +XQORM'>0
               WRITE !,"Status selection unavailable."
               SET TIUY=-1
               GOTO STATX
 +4        SET XQORM(0)=$GET(PARM)
           SET XQORM("A")=$SELECT(MENU="TIU STATUS MENU":"Select DOCUMENT STATUS: ",1:"Select SEARCH CATEGORY: ")
 +5        IF $SELECT(PARM="F":1,PARM="R":1,1:0)
               SET X=DEF
 +6        SET XQORM("B")=DEF
           DO EN^XQORM
 +7        SET TIUY=$GET(Y)
 +8        IF MENU="TIU STATUS MENU"
               IF +$GET(Y)=1
                   IF (+$GET(Y(1))=7)
                       SET Y=2
                       SET Y(2)="8^4843^amended^8"
STATX      QUIT TIUY
XQORM     ;
 +1        SET XQORM("#")=$ORDER(^ORD(101,"B","TIU ALERTS SELECT",0))_U_"1:"_VALMCNT
 +2        QUIT