TIURA3	; SLC/JER - Review screen actions ; 11/21/07
	;;1.0;TEXT INTEGRATION UTILITIES;**220,234**;Jun 20, 1997;Build 6
	; Call to ISA^USRLM supported by DBIA 2324
	; Call to ISTERM^USRLM supported by DBIA 2712
EDITCOS	; Edit Expected Cosigner
	N TIUDA,TIUDATA,TIUCHNG,TIUI,DIROUT,TIUDAARY
	N TIULST,MSGVERB,TIUXNOD
	S TIUXNOD=$G(XQORNOD(0))
	I $P(TIUXNOD,U,3)="EC" W "Edit Cosigner",! S $P(TIUXNOD,U,4)="EC="_$P($P(TIUXNOD,U,4),"==",2)
	S TIUI=0
	I '$D(VALMY) D EN^VALM2(TIUXNOD)
	F  S TIUI=$O(VALMY(TIUI)) Q:+TIUI'>0  D  Q:$D(DIROUT)
	. N RSTRCTD
	. S TIUDATA=$G(^TMP("TIURIDX",$J,TIUI))
	. D CLEAR^VALM1 W !!,"Editing #",+TIUDATA
	. S TIUDA=+$P(TIUDATA,U,2) S RSTRCTD=$$DOCRES^TIULRR(TIUDA)
	. I RSTRCTD D  Q
	. . W !!,$C(7),"Ok, no harm done...",!
	. . I $$READ^TIUU("EA","RETURN to continue...") ; pause
	. S TIUDAARY(TIUI)=TIUDA
	. S TIUCHNG=0
	. I +$D(^TIU(8925,+TIUDA,0)) D EDITCOS1
	. I +$G(TIUCHNG) D
	. . S TIULST=$G(TIULST)_$S($G(TIULST)]"":",",1:"")_TIUI
	; -- Update or Rebuild list, restore video: --
	S TIUCHNG("UPDATE")=1
	D UPRBLD^TIURL(.TIUCHNG,.VALMY) K VALMY
	S VALMBCK="R"
	S MSGVERB="edited"
	D VMSG^TIURS1($G(TIULST),.TIUDAARY,MSGVERB)
	Q
EDITCOS1	; Edit expected cosigner/attending for single record
	; Receives TIUDA
	I '+$G(TIUDA) W !,"No Documents selected." H 2 Q
	; Evaluate edit privilege
	N NODE0,STATUS,OK2CHNG,NODE12,REQCOSIG
	N ECSIGNER,ESIGNER,OKCLASS,TIUISDS,DA,DR,DIE,X
	N ALTNODE0,ALTTIUDA,NESIGNR,NECSIGNR,ATTEND,NATTEND,CHKSUM,LNO,MSGNO
	N CANDO,TIUISCP,TIUISCST,TIUISPN,MSG
	; NECSIGNER,NATTEND etc,(N for new) means post-edit. It may not differ
	;from the original.  It may be null if the original was null.
	S NODE0=^TIU(8925,TIUDA,0),STATUS=$P(NODE0,U,5),(OK2CHNG,OKCLASS)=1
	S ALTNODE0=NODE0,ALTTIUDA=TIUDA,NODE12=$G(^TIU(8925,TIUDA,12))
	I $$ISADDNDM^TIULC1(TIUDA) D
	. S ALTTIUDA=$P(NODE0,U,6)
	. S ALTNODE0=^TIU(8925,ALTTIUDA,0)
	S TIUISDS=$$ISDS^TIULX(+ALTNODE0),TIUISPN=$$ISPN^TIULX(+ALTNODE0)
	S TIUISCST=$$ISA^TIULX(+ALTNODE0,$$CLASS^TIUCNSLT())
	S TIUISCP=$$ISA^TIULX(+ALTNODE0,$$CLASS^TIUCP())
	I 'TIUISDS,'TIUISPN,'TIUISCST,'TIUISCP D  G COS1X
	. S MSG(1,1)="  This action is permitted only for Progress Notes, Discharge"
	. S MSG(1,2)="Summaries, Clinical Procedures and Consults."
	I STATUS>6 S MSG(2,1)="  This document has already been Completed!" G COS1X
	I STATUS<5 S MSG(3,1)="  This document still needs Release or Verification!" G COS1X
	;  Status = 5 unsigned or 6 uncosigned:
	;  Try rules for EDIT COSIGNER:
	S CANDO=$$CANDO^TIULP(TIUDA,"EDIT COSIGNER")
	I 'CANDO S MSG(4,1)="  "_$P(CANDO,U,2) G:STATUS=6 COS1X
	;  If docmt is unsigned and EDIT COSIGNER rules failed,
	;    try EDIT RECORD rules:
	I STATUS=5,'CANDO D  G:'CANDO COS1X
	. S CANDO=$$CANDO^TIULP(TIUDA,"EDIT RECORD")
	. I CANDO K MSG(4) Q
	. S MSG(5,1)="  You are not authorized to edit any aspect of this document."
	; User authorized to change Expected Cosigner/attending:
	S DA=TIUDA,DIE=8925
	;
	;                **Docmt is PN, CP or Consult**
	I 'TIUISDS D  G COS1X
	. S ESIGNER=$P(NODE12,U,4)
	. S ECSIGNER=$P(NODE12,U,8)
	. I ESIGNER'>0 S MSG(6,1)="  This document has no Expected Signer!" Q
	. S REQCOSIG=$$REQCOSIG^TIULP(+NODE0,+TIUDA,ESIGNER)
	. ;
	. ;        **Cosig NOT REQUIRED:**
	. I 'REQCOSIG D  Q
	. . ;  Status Uncosigned - Do not permit completion of notes:
	. . I STATUS=6 D  Q
	. . . S MSG(7,1)="  Cosignature is not currently required. This option cannot be"
	. . . S MSG(7,2)="used to change document status to COMPLETED. It looks like the author's"
	. . . S MSG(7,3)="requirement has changed since this document was written."
	. . . S MSG(7,4)="Please contact your CAC and/or HIMS for assistance."
	. . ;  Unsigned, Has no EC:
	. . I ECSIGNER']"" S MSG(8,1)="  ?? Cosignature not required." Q
	. . ;  Unsigned, Has EC:
	. . S MSG(8,1)="  Cosignature not required. Expected Cosigner deleted."
	. . S DR="1208///@;1506///@" D ^DIE S TIUCHNG=1
	. . ;
	. ;        **Cosig REQUIRED:**
	. W !!,"  You may edit the Expected Cosigner:"
	. S DR="1208R//;1506////1" D ^DIE
	. S NECSIGNR=$P(^TIU(8925,TIUDA,12),U,8)
	. I NECSIGNR']"" D  Q
	. . S MSG(9,1)="  Cosignature is required!  Expected Cosigners cannot be alerted "
	. . S MSG(9,2)="until they are designated. "
	. . I STATUS=6 S MSG(9,3)="Please designate an Expected Cosigner as soon as possible!!"
	. I NECSIGNR=ECSIGNER D  Q
	. . W !!,"  Expected Cosigner not changed." H 1
	. W !!,"  Expected Cosigner edited." H 1 S TIUCHNG=1 Q
	;
	;                **Docmt is a Discharge Summary. Attending required: **
	S ATTEND=$P($G(^TIU(8925,TIUDA,12)),U,9)
	W !!,"You may edit the Attending Physician:"
	S DR="1209R//" D ^DIE
	S NATTEND=$P(^TIU(8925,TIUDA,12),U,9)
	S MSG("ALERT")="  Attendings cannot be alerted until designated!"
	I NATTEND']0 S MSG(1,1)="  Attending is Required!",MSG(1,2)=MSG("ALERT") G COS1X
	;  NATTEND is not null. Does it pass screen from TIU*1*219?
	;  (Needed even after 219 for ^ or Return with no Attending)
	;  Overwrite most likely msgs with least likely:
	I +$$REQCOSIG^TIULP(+NODE0,+TIUDA,NATTEND) S MSG(2,1)="  This person requires a cosignature. Please select a different Attending.",MSG(2,2)=MSG("ALERT")
	I '$$ISA^USRLM(NATTEND,"PROVIDER") D
	. K MSG(2)
	. S MSG(2,1)="  This person is not in User Class PROVIDER.  Please check User "
	. S MSG(2,2)="Class or select a different Attending."
	. S MSG(2,3)=MSG("ALERT")
	I $$ISTERM^USRLM(NATTEND) K MSG(2) S MSG(2,1)="  This person is terminated! Please select a different Attending.",MSG(2,2)=MSG("ALERT")
	; Att fails. Restore old att:
	I $D(MSG(2)) D  G COS1X
	. S X=$S((STATUS=5)&(ATTEND']""):"@",1:ATTEND),DR="1209////" D ^DIE
	; Attending exists and is good:
	S NESIGNR=$$WHOSIGNS^TIULC1(DA),NECSIGNR=$$WHOCOSIG^TIULC1(DA)
	S DR="1204////^S X=NESIGNR"
	S DR=DR_";1208////^S X=NECSIGNR"
	S DR=DR_";1506////^S X=$S(+NESIGNR=+NATTEND:0,1:1)"
	D ^DIE
	I NATTEND=ATTEND D  G COS1X
	. W !!,"  Attending Physician not changed." H 1
	; New Attend Changed - Go on to audit
	W !!,"  Attending Physician edited." S TIUCHNG=1 H 1
COS1X	;
	I $G(TIUCHNG) D
	. D SEND^TIUALRT(TIUDA)
	. Q:$G(STATUS)'=6  D  ; Audit uncosigned docmts only
	. S CHKSUM=+$$CHKSUM^TIULC("^TIU(8925,"_+TIUDA_",""TEXT"")")
	. D AUDIT^TIUEDI1(TIUDA,CHKSUM,CHKSUM)
	I $D(MSG) W ! F MSGNO=1:1:9 D
	. F LNO=1:1:10 Q:'$D(MSG(MSGNO,LNO))  W !,MSG(MSGNO,LNO)
	I $D(MSG),$$READ^TIUU("EA","RETURN to continue...")
	Q
