VistA-FOIAVistA/r/TEXT_INTEGRATION_UTILITIES-.../TIULP1.m

82 lines
4.2 KiB
Mathematica

TIULP1 ; SLC/JER - More functions determining privilege ;1/19/95 17:49
;;1.0;TEXT INTEGRATION UTILITIES;;Jun 20, 1997
CANADDA(DA) ;Checks if an Addendum can be added
N TIUY,TIU0,TIU13,TIU15
I 'DA S TIUY="^There is no original report." G ADDAX
S TIU0=$G(^TIU(8925,+DA,0)),TIU13=$G(^(13)),TIU15=$G(^(15))
I +$P(TIU0,U,6) S TIUY="^This is an addendum." G ADDAX
; If release is required, and document isn't released
; I ------ S TIUY="^Document isn't released from transcription.") G ADDAX
; I ------ S TIUY="^Original Discharge Summary isn't verified." G ADDAX
I +$G(DUZ)=$P(ACT,U,9) D G:$D(TIUX) ADDAX
. I '$P(ACT,U,11) S TIUX="^Discharge Summary isn't cosigned."
I +$G(DUZ)=$P(ACT,U) D G:$D(TIUX) ADDAX
. I '$P(ACT,U,4) S TIUX="^Discharge Summary isn't signed nor cosigned."
S TIUX=1
ADDAX ;Exit for CANADDA
I $P($G(TIUX),U,2)]"" S TIUX=TIUX_" Can't enter Addendum."
Q TIUX
CANEDITA(TIUDA,TIUY) ;Checks if an Addendum can be edited
N ACT,TIUX,DA,TIUCNT,SIGN,COSIGN,TIUCHIEF
S TIUCNT=0
I '$D(^TIU(8925,"DAD",+TIUDA))!(+$P($G(^TIU(8925,+TIUDA,0)),U,6)) G EDITAX
S DA=0 F S DA=$O(^TIU(8925,"DAD",+TIUDA,DA)) Q:+DA'>0 D
. S ACT=$G(^TIU(8925,+DA,"ACT")),SIGN=$P(ACT,U,4),COSIGN=$P(ACT,U,11)
. S TIUCHIEF=+$D(^XUSEC("TIU SERVICE CHIEF",+$G(DUZ)))
. I ACT']"" Q
. I $D(TIUXCRP) D Q
. . ;Transcriptionist and requires release
. . I $P($G(TIUPRM1),U,3),'$P(ACT,U,19) S TIUCNT=TIUCNT+1,TIUY(TIUCNT)=DA
. . ;Transcriptionist, doesn't require release, requires verification
. . I '$P($G(TIUPRM1),U,3),$P($G(TIUPRM1),U,2),'$P(ACT,U,8) S TIUCNT=TIUCNT+1,TIUY(TIUCNT)=DA
. ;MRT or MIS Manager and requires MAS verification
. I $P(TIUPRM1,U,2),$D(TIUMRT)!($D(^XUSEC("TIU MANAGER",+$G(DUZ)))) D Q
. . I $P(ACT,U,19),'SIGN,'COSIGN S TIUCNT=TIUCNT+1,TIUY(TIUCNT)=DA
. . I '$P(ACT,U,19),$P(ACT,U,5)=+$G(DUZ) S TIUCNT=TIUCNT+1,TIUY(TIUCNT)=DA
. ;If not transcriptionist nor MIS, transcriber can see it till signed
. I '$D(TIUXCRP),'$D(TIUMRT),'$D(^XUSEC("TIU MANAGER",+$G(DUZ))),$P(ACT,U,5)=+$G(DUZ) D Q
. . I 'SIGN,'COSIGN S TIUCNT=TIUCNT+1,TIUY(TIUCNT)=DA Q
. ;Check if author or cosigner and unreleased or unverified or signed
. I $P(ACT,U)=+$G(DUZ)!($P(ACT,U,9)=+$G(DUZ))!(TIUCHIEF)!($D(^XUSEC("TIU SURROGATE",+$G(DUZ)))) D Q
. . I +$P(TIUPRM1,U,3),'+$P(ACT,U,19) S TIUCNT=TIUCNT+1,TIUY(TIUCNT)="^ exists but is not yet released from transcription." Q
. . I +$P(TIUPRM1,U,2),'+$P(ACT,U,8) S TIUCNT=TIUCNT+1,TIUY(TIUCNT)="^ exists but is not yet verified." Q
. . I COSIGN S TIUCNT=TIUCNT+1,TIUY(TIUCNT)="^ exists but has been cosigned" Q
. . I 'SIGN,'COSIGN S TIUCNT=TIUCNT+1,TIUY(TIUCNT)=DA Q
. . I SIGN,'COSIGN,$P(ACT,U,9)=+$G(DUZ)!(TIUCHIEF) S TIUCNT=TIUCNT+1,TIUY(TIUCNT)=DA Q
EDITAX ;Exit for CANEDITA
S TIUX=$S($D(TIUY(TIUCNT)):1,1:0)
Q TIUX
READYSIG(DA) ;Check if user is provider & rec is ready for signature
N ACT,TIUY
S TIUY=0,ACT=$G(^TIU(8925,+DA,"ACT"))
I $D(^XUSEC("PROVIDER",+$G(DUZ)))!($D(^XUSEC("TIU AUTHOR",+$G(DUZ))))!($D(^XUSEC("TIU SURROGATE",+$G(DUZ)))) D
. I $P(TIUPRM1,U,2) D Q ;Verification required and completed
. . I +$P(ACT,U,8) S TIUY=1
. I $P(TIUPRM1,U,3) D Q ;Verification not required,
. . ;transcription release required and released
. . I +$P(ACT,U,19) S TIUY=1
. ; Verification and transcription release not required
. S TIUY=1
READYX ;Exit for READYSIG
Q TIUY
CANDEL(DA) ; Check whether user has authority to delete record
N Y
I $D(^XUSEC("TIU MANAGER",DUZ)) S Y=1 G CANDELX
S Y="0^You are not authorized to DELETE Discharge Summaries."
CANDELX Q Y
CANSEND(TIUDA) ; Checks of user can send DCS back to transcription
N ACT,TIUY
S ACT=$G(^TIU(8925,+TIUDA,"ACT")) D
. I +$P(ACT,U,16) S TIUY="^ Has been purged." Q
. I +$P(TIUPRM1,U,3),'+$P(ACT,U,19) S TIUY="0^ Is already available to transcription." Q
. I +$P($G(^TIU(8925,+DA,"ACT")),U,11) S TIUY="0^ Attending Physician has signed." Q
. S TIUY=+$$READ^TIUU("YO","Are you sure you want to send report back to "_$S($P(ACT,U)=$P(ACT,U,5):"author",1:"transcription"),"NO","^D SBACK^TIUDIRH")
Q TIUY
CANAMND(TIUDA) ; Checks whether user can amend a discharge summary
N ACT,TIUY
S ACT=$G(^TIU(8925,+TIUDA,"ACT"))
I +$P(ACT,U,4)'>0 S TIUY="0^ Not yet signed"
I +$P(ACT,U,11)'>0 S TIUY="0^ Not yet cosigned" G CANAMNX
S TIUY=1
CANAMNX Q TIUY