TIUGEDIT ; SLC/MAM - Add New ID Entry; 8/28/01
 ;;1.0;TEXT INTEGRATION UTILITIES;**100,123**;Jun 20, 1997
DIE(DA,TIUQUIT) ; Invoke ^DIE
 N Y,DIE,DR
 S ^TIU(8925,"ASAVE",DUZ,DA)=""
 S DR=$$GETTMPL^TIUEDI1(+$P(^TIU(8925,+DA,0),U))
 I DR']"" W !?5,$C(7),"No Edit template defined for ",$$PNAME^TIULC1(+$P(^TIU(8925,+DA,0),U)),! S TIUQUIT=2 Q
 S DIE=8925 D ^DIE
 S DR=".05///undictated",DIE=8925 D ^DIE
 D UPDTIRT^TIUDIRT(.TIU,DA),SEND^TIUALRT(DA)
 L -^TIU(8925,+DA)
 Q
 ;
ADDSTUB(DADDA) ; Prompt user for new stub ID entries for parent DADDA
 N TIUAUTH,TIUTYP,TIUDAD,DFN,TIUDPRM,DA,TIURTYP,TIUPRMT
 N X,Y,DIC
 S DFN=$P(^TIU(8925,DADDA,0),U,2)
 W !!,"  If you wish you may add stub interdisciplinary entries for this note:",!
 F  D  Q:$G(TIUAUTH)'>0  Q:$G(TIUTYP)'>0
 . K TIUTYP,TIUAUTH
 . S DIC=200,DIC(0)="AEMQ",DIC("A")="Select stub AUTHOR: "
 . S DIC("S")="I '+$$ISTERM^USRLM(+Y)"
 . D ^DIC
 . ;I Y'>0 S TIUOUT=1 Q
 . Q:Y'>0
 . S TIUAUTH=+Y
 . ; -- Get data array TIUDAD on parent note DADDA: --
 . I '$D(TIUDAD) D GETTIU^TIULD(.TIUDAD,DADDA)
 . D DOCSPICK^TIULA2(.TIUTYP,3,"1A","LAST","Select stub TITLE: ","+$$CANPICK^TIULP(+Y),+$$CANENTR^TIULP(+Y),$$CANLINK^TIULP(+Y)")
 . ;I +$G(TIUTYP)'>0 S TIUOUT=1 Q
 . Q:+$G(TIUTYP)'>0
 . S TIUTYP=+$P($G(TIUTYP(1)),U,2) ; IFN. (DOCSPICK returns TIUTYP as 1.)
 . ; -- Use visit of parent: --
 . M TIU=TIUDAD
 . ;-- Get parameters for selected title: --
 . D DOCPRM^TIULC1(TIUTYP,.TIUDPRM)
 . ; --  Get DA: --
 . S DA=$$CREATREC^TIUEDI3(DFN,.TIU,TIUTYP(1))
 . N TIUQUIT,TIUTDA
 . D DIE(DA,.TIUQUIT)
 . D LINK^TIUGR2(DA,DADDA)
 . W !,"  Stub entry added",!!
 Q
 ;
ADDDAD(DADDA,ADDED) ; Create new ID entry and link it to note DADDA
 ; Assumes DADDA can receive ID entries.
 ; Requires DADDA = parent note
 ; Requires DADLINE = parent note line number
 ; Returns ADDED > 0 if new note added (may not be linked), otherwise = 0
 N TITLE,TIUD0,TITLEDA,ADDING,STATUS,KIDDA
 S ADDED=0
 S TIUD0=$G(^TIU(8925,+DADDA,0))
 S TITLEDA=+TIUD0,STATUS=$P(TIUD0,U,5),TITLE=$$PNAME^TIULC1(TITLEDA)
 I STATUS<6 Q
 S ADDING=$$READ^TIUU("Y","Are you adding a new interdisciplinary entry to this note","YES")
 I 'ADDING D  Q
 . W !!,"This note appears to be an interdisciplinary parent.  Please select"
 . W !,"the note you want to attach to this note FIRST, or check with IRM"
 . W !,"or your clinical coordinator."
 . I $$READ^TIUU("EA","Press RETURN to continue...")
 D CLEAR^VALM1 W !!,"Adding a new interdisciplinary entry to",!,TITLE
 D FULL^VALM1
 D ADDDAD1(DADDA,.KIDDA)
 I $G(KIDDA) S ADDED=1 D:$D(^TMP("TIUR",$J)) UPIDDATA^TIURL1(DADDA),UPIDDATA^TIURL1(KIDDA)
 Q
 ;
ADDDAD1(DADDA,DA) ; Enter one new ID Document and link it to DADDA
 ; Call with:
 ; [DADDA] --> IFN of note new note will be added to,
 ;             i.e. parent note. Required.
 ;    [DA] --> IFN of new note or 0 if not created.  Passed back.
 N LINKTL,TIUVSUPP,TIULMETH,TIU,TIUVMETH,TIUOUT,TIUASK,TIUDAD
 N TIUNEW,TIU,TIUTYP,DFN,EDIT,TIUCMMTX,TIUDPRM,TIUEXIT,CONTINUE
 N TIUQUIT
 S DA=0
 ; -- Get data array TIUDAD on parent note DADDA: --
 D GETTIU^TIULD(.TIUDAD,DADDA)
 S DFN=$P(^TIU(8925,DADDA,0),U,2)
 ; -- Get new title from user.
 ;    Set info into array TIUTYP where
 ;          TIUTYP = title DA
 ;       TIUTYP(1) = 1^title DA^Name...
TITLE ; -- Get title.  Limit titles to those user can link, at least
 ;for SOME status.  Check again later after we know the status.
 W !!,"Please select a title for your entry:"
 D DOCSPICK^TIULA2(.TIUTYP,3,"1A","LAST","","+$$CANPICK^TIULP(+Y),+$$CANENTR^TIULP(+Y),$$CANLINK^TIULP(+Y)")
 I +$G(TIUTYP)'>0 S TIUOUT=1 Q
 S TIUTYP=+$P($G(TIUTYP(1)),U,2) ; IFN. (DOCSPICK returns TIUTYP as 1.)
VISIT ; -- Get visit (use same visit as first entry unless visit
 ;must be an historical event and parent visit is not hist): --
 S TIUVSUPP=+$$SUPPVSIT^TIULC1(TIUTYP)
 I TIUVSUPP,$P(TIUDAD("VSTR"),";",3)'="E" D EVENT^TIUSRVP1(.TIU,DFN) I 1
 E  M TIU=TIUDAD
VALID ; -- Validate, i.e. ask user if OK: --
 S TIUVMETH=$$GETVMETH^TIUEDI1(TIUTYP)
 I '$L(TIUVMETH) D  S TIUOUT=1 Q
 . W !,$C(7),"No Validation Method defined for "
 . W $$PNAME^TIULC1(TIUTYP),".",!,"Please contact IRM..."
 ; -- Ask user if proposed docmt looks OK.
 ;    May change array TIU, gets user answer in TIUASK: --
 K TIU("REFDT") ; for new ID child, want default = NOW. See TIULD
 X TIUVMETH
 I '$D(TIU("VSTR")) D  Q
 . W !,$C(7),"Patient & Visit required." H 2
 ; -- Go on if user answers says OK: --
 Q:'TIUASK
 ;-- Get parameters for selected title: --
 D DOCPRM^TIULC1(TIUTYP,.TIUDPRM)
 ; --  Get DA: new docmt for user to continue entering, or
 ;     existing docmt for user to edit, or existing docmt for
 ;     user to link w/o editing since they may not edit it: --
 S DA=$$GETRECG^TIUGEDI1(DFN,.TIU,.TIUTYP,.TIUDPRM,.TIUNEW,.EDIT,DADDA)
 I 'DA S VALMSG="** No entry added **" Q
 ; -- If user is attaching an existing docmt they may not edit,
 ;    try to attach, and quit: --
 I 'TIUNEW,'EDIT D TRYLINK(DA,DADDA,.TIUDAD) H 2 Q
 ; -- Edit new or existing DA: --
 N TIUQUIT,TIUTDA
 D DIE^TIUEDI4(DA,.TIUQUIT)
 Q:'$G(^TIU(8925,DA,0))  ; uparrow w/ bad docmt, already deleted
 I $$EMPTYDOC^TIULF(DA) D DELETE^TIUEDIT(DA,0) S:$G(VALMAR)="^TMP(""TIUVIEW"",$J)" VALMBCK="Q" S:'TIUNEW TIUCHNG("DELETE")=1 H:'TIUNEW 2 Q
 I +$G(TIUQUIT),'EDIT W !,"Document not attached" H 2 Q
 ; -- Misc after-edit-stuff for DA --
 I +$G(TIU("STOP")),(+$P($G(TIUDPRM(0)),U,14)'=1) D DEFER^TIUVSIT(DA,TIU("STOP")) I 1 ; Stop code: For stand alones, mark to get work load at signature
 E  D QUE^TIUPXAP1 ; Post workload now in background
 S TIUCMMTX=$$COMMIT^TIULC1(TIUTYP)
 I TIUCMMTX]"" X TIUCMMTX
 D RELEASE^TIUT(DA)
 D VERIFY^TIUT(DA)
 ; -- If get this far without quitting, attach entry,
 ;    new or existing, so auto-print prints whole note:
 D LINK^TIUGR2(DA,DADDA) S VALMSG="** Entry attached **"
 ; -- Get signature
 D EDSIG^TIURS(DA) ;does auto-print
 ; -- execute EXIT ACTION --
 S TIUEXIT=$$GETEXIT^TIUEDI2(TIUTYP)
 I $L(TIUEXIT) S TIUTDA=DA X TIUEXIT S DA=TIUTDA
 ;I '$G(^TIU(8925,DA,21)) D TRYLINK(DA,DADDA,.TIUDAD)
 ; --  [Prompt to print DA] --
 I +$P($G(TIUDPRM(0)),U,8) D PRINT^TIUEPRNT(DA)
 Q
 ;
TRYLINK(DA,DADDA,TIUDAD) ; Check specific docmt now that we know
 ;its status, to see if user can attach it to an ID note; if so,
 ;attach DA to DADDA.
 ; Already know that DADDA can receive ID entries.
 ;4/11/01 not currently used
 N CANLINK
 S CANLINK=$$CANDO^TIULP(DA,"ATTACH TO ID NOTE")
 I 'CANLINK D  Q
 . W !!,$P(CANLINK,U,2),!," Entry saved as a stand-alone note.  Please attach it later if you are",!," authorized to do so."
 . I $$READ^TIUU("EA","Press RETURN to continue...")
 . I $D(DUOUT)!$D(DTOUT)!$D(DIROUT) S TIUQUIT=1
 . S VALMSG="** Entry saved as a stand-alone note **"
 D LINK^TIUGR2(DA,DADDA)
 W !!,"Entry added to ",$P(TIUDAD("DOCTYP"),U,2)
 S VALMSG="** Entry attached **"
 Q
 ;
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HTIUGEDIT   6960     printed  Sep 23, 2025@20:17:50                                                                                                                                                                                                    Page 2
TIUGEDIT  ; SLC/MAM - Add New ID Entry; 8/28/01
 +1       ;;1.0;TEXT INTEGRATION UTILITIES;**100,123**;Jun 20, 1997
DIE(DA,TIUQUIT) ; Invoke ^DIE
 +1        NEW Y,DIE,DR
 +2        SET ^TIU(8925,"ASAVE",DUZ,DA)=""
 +3        SET DR=$$GETTMPL^TIUEDI1(+$PIECE(^TIU(8925,+DA,0),U))
 +4        IF DR']""
               WRITE !?5,$CHAR(7),"No Edit template defined for ",$$PNAME^TIULC1(+$PIECE(^TIU(8925,+DA,0),U)),!
               SET TIUQUIT=2
               QUIT 
 +5        SET DIE=8925
           DO ^DIE
 +6        SET DR=".05///undictated"
           SET DIE=8925
           DO ^DIE
 +7        DO UPDTIRT^TIUDIRT(.TIU,DA)
           DO SEND^TIUALRT(DA)
 +8        LOCK -^TIU(8925,+DA)
 +9        QUIT 
 +10      ;
ADDSTUB(DADDA) ; Prompt user for new stub ID entries for parent DADDA
 +1        NEW TIUAUTH,TIUTYP,TIUDAD,DFN,TIUDPRM,DA,TIURTYP,TIUPRMT
 +2        NEW X,Y,DIC
 +3        SET DFN=$PIECE(^TIU(8925,DADDA,0),U,2)
 +4        WRITE !!,"  If you wish you may add stub interdisciplinary entries for this note:",!
 +5        FOR 
               Begin DoDot:1
 +6                KILL TIUTYP,TIUAUTH
 +7                SET DIC=200
                   SET DIC(0)="AEMQ"
                   SET DIC("A")="Select stub AUTHOR: "
 +8                SET DIC("S")="I '+$$ISTERM^USRLM(+Y)"
 +9                DO ^DIC
 +10      ;I Y'>0 S TIUOUT=1 Q
 +11               if Y'>0
                       QUIT 
 +12               SET TIUAUTH=+Y
 +13      ; -- Get data array TIUDAD on parent note DADDA: --
 +14               IF '$DATA(TIUDAD)
                       DO GETTIU^TIULD(.TIUDAD,DADDA)
 +15               DO DOCSPICK^TIULA2(.TIUTYP,3,"1A","LAST","Select stub TITLE: ","+$$CANPICK^TIULP(+Y),+$$CANENTR^TIULP(+Y),$$CANLINK^TIULP(+Y)")
 +16      ;I +$G(TIUTYP)'>0 S TIUOUT=1 Q
 +17               if +$GET(TIUTYP)'>0
                       QUIT 
 +18      ; IFN. (DOCSPICK returns TIUTYP as 1.)
                   SET TIUTYP=+$PIECE($GET(TIUTYP(1)),U,2)
 +19      ; -- Use visit of parent: --
 +20               MERGE TIU=TIUDAD
 +21      ;-- Get parameters for selected title: --
 +22               DO DOCPRM^TIULC1(TIUTYP,.TIUDPRM)
 +23      ; --  Get DA: --
 +24               SET DA=$$CREATREC^TIUEDI3(DFN,.TIU,TIUTYP(1))
 +25               NEW TIUQUIT,TIUTDA
 +26               DO DIE(DA,.TIUQUIT)
 +27               DO LINK^TIUGR2(DA,DADDA)
 +28               WRITE !,"  Stub entry added",!!
               End DoDot:1
               if $GET(TIUAUTH)'>0
                   QUIT 
               if $GET(TIUTYP)'>0
                   QUIT 
 +29       QUIT 
 +30      ;
ADDDAD(DADDA,ADDED) ; Create new ID entry and link it to note DADDA
 +1       ; Assumes DADDA can receive ID entries.
 +2       ; Requires DADDA = parent note
 +3       ; Requires DADLINE = parent note line number
 +4       ; Returns ADDED > 0 if new note added (may not be linked), otherwise = 0
 +5        NEW TITLE,TIUD0,TITLEDA,ADDING,STATUS,KIDDA
 +6        SET ADDED=0
 +7        SET TIUD0=$GET(^TIU(8925,+DADDA,0))
 +8        SET TITLEDA=+TIUD0
           SET STATUS=$PIECE(TIUD0,U,5)
           SET TITLE=$$PNAME^TIULC1(TITLEDA)
 +9        IF STATUS<6
               QUIT 
 +10       SET ADDING=$$READ^TIUU("Y","Are you adding a new interdisciplinary entry to this note","YES")
 +11       IF 'ADDING
               Begin DoDot:1
 +12               WRITE !!,"This note appears to be an interdisciplinary parent.  Please select"
 +13               WRITE !,"the note you want to attach to this note FIRST, or check with IRM"
 +14               WRITE !,"or your clinical coordinator."
 +15               IF $$READ^TIUU("EA","Press RETURN to continue...")
               End DoDot:1
               QUIT 
 +16       DO CLEAR^VALM1
           WRITE !!,"Adding a new interdisciplinary entry to",!,TITLE
 +17       DO FULL^VALM1
 +18       DO ADDDAD1(DADDA,.KIDDA)
 +19       IF $GET(KIDDA)
               SET ADDED=1
               if $DATA(^TMP("TIUR",$JOB))
                   DO UPIDDATA^TIURL1(DADDA)
                   DO UPIDDATA^TIURL1(KIDDA)
 +20       QUIT 
 +21      ;
ADDDAD1(DADDA,DA) ; Enter one new ID Document and link it to DADDA
 +1       ; Call with:
 +2       ; [DADDA] --> IFN of note new note will be added to,
 +3       ;             i.e. parent note. Required.
 +4       ;    [DA] --> IFN of new note or 0 if not created.  Passed back.
 +5        NEW LINKTL,TIUVSUPP,TIULMETH,TIU,TIUVMETH,TIUOUT,TIUASK,TIUDAD
 +6        NEW TIUNEW,TIU,TIUTYP,DFN,EDIT,TIUCMMTX,TIUDPRM,TIUEXIT,CONTINUE
 +7        NEW TIUQUIT
 +8        SET DA=0
 +9       ; -- Get data array TIUDAD on parent note DADDA: --
 +10       DO GETTIU^TIULD(.TIUDAD,DADDA)
 +11       SET DFN=$PIECE(^TIU(8925,DADDA,0),U,2)
 +12      ; -- Get new title from user.
 +13      ;    Set info into array TIUTYP where
 +14      ;          TIUTYP = title DA
 +15      ;       TIUTYP(1) = 1^title DA^Name...
TITLE     ; -- Get title.  Limit titles to those user can link, at least
 +1       ;for SOME status.  Check again later after we know the status.
 +2        WRITE !!,"Please select a title for your entry:"
 +3        DO DOCSPICK^TIULA2(.TIUTYP,3,"1A","LAST","","+$$CANPICK^TIULP(+Y),+$$CANENTR^TIULP(+Y),$$CANLINK^TIULP(+Y)")
 +4        IF +$GET(TIUTYP)'>0
               SET TIUOUT=1
               QUIT 
 +5       ; IFN. (DOCSPICK returns TIUTYP as 1.)
           SET TIUTYP=+$PIECE($GET(TIUTYP(1)),U,2)
VISIT     ; -- Get visit (use same visit as first entry unless visit
 +1       ;must be an historical event and parent visit is not hist): --
 +2        SET TIUVSUPP=+$$SUPPVSIT^TIULC1(TIUTYP)
 +3        IF TIUVSUPP
               IF $PIECE(TIUDAD("VSTR"),";",3)'="E"
                   DO EVENT^TIUSRVP1(.TIU,DFN)
                   IF 1
 +4       IF '$TEST
               MERGE TIU=TIUDAD
VALID     ; -- Validate, i.e. ask user if OK: --
 +1        SET TIUVMETH=$$GETVMETH^TIUEDI1(TIUTYP)
 +2        IF '$LENGTH(TIUVMETH)
               Begin DoDot:1
 +3                WRITE !,$CHAR(7),"No Validation Method defined for "
 +4                WRITE $$PNAME^TIULC1(TIUTYP),".",!,"Please contact IRM..."
               End DoDot:1
               SET TIUOUT=1
               QUIT 
 +5       ; -- Ask user if proposed docmt looks OK.
 +6       ;    May change array TIU, gets user answer in TIUASK: --
 +7       ; for new ID child, want default = NOW. See TIULD
           KILL TIU("REFDT")
 +8        XECUTE TIUVMETH
 +9        IF '$DATA(TIU("VSTR"))
               Begin DoDot:1
 +10               WRITE !,$CHAR(7),"Patient & Visit required."
                   HANG 2
               End DoDot:1
               QUIT 
 +11      ; -- Go on if user answers says OK: --
 +12       if 'TIUASK
               QUIT 
 +13      ;-- Get parameters for selected title: --
 +14       DO DOCPRM^TIULC1(TIUTYP,.TIUDPRM)
 +15      ; --  Get DA: new docmt for user to continue entering, or
 +16      ;     existing docmt for user to edit, or existing docmt for
 +17      ;     user to link w/o editing since they may not edit it: --
 +18       SET DA=$$GETRECG^TIUGEDI1(DFN,.TIU,.TIUTYP,.TIUDPRM,.TIUNEW,.EDIT,DADDA)
 +19       IF 'DA
               SET VALMSG="** No entry added **"
               QUIT 
 +20      ; -- If user is attaching an existing docmt they may not edit,
 +21      ;    try to attach, and quit: --
 +22       IF 'TIUNEW
               IF 'EDIT
                   DO TRYLINK(DA,DADDA,.TIUDAD)
                   HANG 2
                   QUIT 
 +23      ; -- Edit new or existing DA: --
 +24       NEW TIUQUIT,TIUTDA
 +25       DO DIE^TIUEDI4(DA,.TIUQUIT)
 +26      ; uparrow w/ bad docmt, already deleted
           if '$GET(^TIU(8925,DA,0))
               QUIT 
 +27       IF $$EMPTYDOC^TIULF(DA)
               DO DELETE^TIUEDIT(DA,0)
               if $GET(VALMAR)="^TMP(""TIUVIEW"",$J)"
                   SET VALMBCK="Q"
               if 'TIUNEW
                   SET TIUCHNG("DELETE")=1
               if 'TIUNEW
                   HANG 2
               QUIT 
 +28       IF +$GET(TIUQUIT)
               IF 'EDIT
                   WRITE !,"Document not attached"
                   HANG 2
                   QUIT 
 +29      ; -- Misc after-edit-stuff for DA --
 +30      ; Stop code: For stand alones, mark to get work load at signature
           IF +$GET(TIU("STOP"))
               IF (+$PIECE($GET(TIUDPRM(0)),U,14)'=1)
                   DO DEFER^TIUVSIT(DA,TIU("STOP"))
                   IF 1
 +31      ; Post workload now in background
          IF '$TEST
               DO QUE^TIUPXAP1
 +32       SET TIUCMMTX=$$COMMIT^TIULC1(TIUTYP)
 +33       IF TIUCMMTX]""
               XECUTE TIUCMMTX
 +34       DO RELEASE^TIUT(DA)
 +35       DO VERIFY^TIUT(DA)
 +36      ; -- If get this far without quitting, attach entry,
 +37      ;    new or existing, so auto-print prints whole note:
 +38       DO LINK^TIUGR2(DA,DADDA)
           SET VALMSG="** Entry attached **"
 +39      ; -- Get signature
 +40      ;does auto-print
           DO EDSIG^TIURS(DA)
 +41      ; -- execute EXIT ACTION --
 +42       SET TIUEXIT=$$GETEXIT^TIUEDI2(TIUTYP)
 +43       IF $LENGTH(TIUEXIT)
               SET TIUTDA=DA
               XECUTE TIUEXIT
               SET DA=TIUTDA
 +44      ;I '$G(^TIU(8925,DA,21)) D TRYLINK(DA,DADDA,.TIUDAD)
 +45      ; --  [Prompt to print DA] --
 +46       IF +$PIECE($GET(TIUDPRM(0)),U,8)
               DO PRINT^TIUEPRNT(DA)
 +47       QUIT 
 +48      ;
TRYLINK(DA,DADDA,TIUDAD) ; Check specific docmt now that we know
 +1       ;its status, to see if user can attach it to an ID note; if so,
 +2       ;attach DA to DADDA.
 +3       ; Already know that DADDA can receive ID entries.
 +4       ;4/11/01 not currently used
 +5        NEW CANLINK
 +6        SET CANLINK=$$CANDO^TIULP(DA,"ATTACH TO ID NOTE")
 +7        IF 'CANLINK
               Begin DoDot:1
 +8                WRITE !!,$PIECE(CANLINK,U,2),!," Entry saved as a stand-alone note.  Please attach it later if you are",!," authorized to do so."
 +9                IF $$READ^TIUU("EA","Press RETURN to continue...")
 +10               IF $DATA(DUOUT)!$DATA(DTOUT)!$DATA(DIROUT)
                       SET TIUQUIT=1
 +11               SET VALMSG="** Entry saved as a stand-alone note **"
               End DoDot:1
               QUIT 
 +12       DO LINK^TIUGR2(DA,DADDA)
 +13       WRITE !!,"Entry added to ",$PIECE(TIUDAD("DOCTYP"),U,2)
 +14       SET VALMSG="** Entry attached **"
 +15       QUIT 
 +16      ;