VistA-WorldVistAEHR/r/MENTAL_HEALTH-YS-RUCL-YI-YT/YSASSN.m

109 lines
3.6 KiB
Mathematica

YSASSN ;692/DCL-ASI SIGNATURE AND NARRATIVE ;4/7/98 14:08
;;5.01;MENTAL HEALTH;**24,39**;Dec 30, 1994
Q
ES(YSASS) ;Electronc Signature - Pass flag by reference
;YSASS= 0-FAILED, 1-SUCCESS
N X,X1
S YSASS=0
D SIG^XUSESIG
I X1="" D Q
.W $C(7),!,"SIGNATURE FAILED"
.W !,"< ASI SAVED - WITHOUT SIGNATURE >"
.Q
S YSASS=1 ;signature ok
Q
;
NARYN(YSAS1) ;Narrative Yes or No
N YSAS2,DIR,X,Y
S YSAS1=""
S DIR(0)="Y"
S DIR("A")="ENTER A NARRATIVE FOR THIS ASI "
S DIR("B")="YES"
D ^DIR
S YSAS1=Y
Q
;
EN(YSAIEN) ;Entry point
N YSAS,YSAS,YSASFLG,YSASINTV,DIC,DIE,DA,DR,X,Y,YSASPN,YSASPT,YSASPIEN
N YSASSGNT,YSASSPL,YSASTRS,YSASBUL
;YSASSGNT=DATE/TIME SIGNED
;YSASFLG=to determine if any important fields are missing.
;YSASTRS=Transcriber -
;YSASBUL=Send Bulletin via e-mail informing the interviewer of the ASI to sign, which was transcribed by someonelse
;YSASINTV=Interviewer - can only be signed by interviewer or an ASI Manager
S YSASCL=$$F(.04,"I")
D:YSASCL'=2 OUT2^YSASO1(YSAIEN,.YSASFLG)
D:YSASCL=2 OUT3^YSASO2(YSAIEN,.YSASFLG)
S YSASSPL=$$F(.11,"I"),YSASPN=$P($G(^YSTX(604.8,1,0)),"^",5)
D CHECKALL^YSASO2(YSAIEN,.YSASFLG) ;FULL REQUIREMENT CHECK
I YSASSPL?1N&(YSASFLG=0) D
.W $C(7),!!,"< ASI NOT COMPLETE - SPECIAL CODE:",$$F(.11)," >",!
. K DIR S DIR(0)="Y",DIR("A")="Do you want to sign this ASI as complete even though the patient "_$S(YSASSPL=1:"terminated",YSASSPL=2:"refused",1:"was unable to respond")
. D ^DIR S:Y=1 YSASFLG=1
.Q
I YSASFLG=0 D Q
.W $C(7),!!,"< NO SIGNATURE REQUESTED, ASI HAS MISSING DATA >"
.W !,"< MUST COMPLETE REQUIRED FIELDS >"
.W !,"< ASI SAVED - WITHOUT SIGNATURE AND WITHOUT PROGRESS NOTE >"
. K DIR S DIR(0)="Y",DIR("A")="Display missing required fields",DIR("B")="NO"
. D ^DIR I Y=1 D REPTMSG^YSASO2(YSAIEN) Q
.Q
S YSASINTV=$$F(.09,"I"),YSASPT=$$F(.02,"I") ; $$GET1^DIQ(604,YSAIEN_",",.09,"I")
S YSASTRS=$$F(.14,"I")
I YSASINTV'>0 D Q
. W $C(7),!!,"< NO SIGNATURE REQUESTED, ASI HAS MISSING DATA >"
.W !,"< MUST COMPLETE NAME OF INTERVIEWER >"
.W !,"< ASI SAVED - WITHOUT SIGNATURE AND WITHOUT PROGRESS NOTE >"
.W !!,"<press <cr> to continue>"
.R X:DTIME
.Q
XN ;
D:YSASFLG=2
. K DIR S DIR(0)="Y",DIR("A")="Display required fields answered X or N",DIR("B")="NO"
. D ^DIR I Y=1 D REPTMSG^YSASO2(YSAIEN)
;
I YSASFLG!(YSASSPL) D
.I YSASINTV=YSASTRS,YSASTRS=DUZ,YSASTRS>0 D ES(.YSAS) Q
.I $D(^YSTX(604.8,"AB",DUZ)) D Q
..W !,$$AS("ASI Package Manager")
..D ES(.YSAS)
..Q
.I YSASINTV=DUZ D ES(.YSAS) Q
.I YSASTRS=DUZ,YSASINTV'=DUZ D Q
..W !,$$AS("Transcriber")
..D ES(.YSAS)
..S:$G(YSAS) YSASBUL=1
..Q
.Q
I $G(YSAS),$G(YSASBUL) D Q
.;send bulletin and change turn over responsibility for ASI to interviewer, who will be able to sign/create progress note
.W !,"...Sending bulletin to Interviewer..."
.D BUL^YSASBUL(YSAIEN,YSASTRS,YSASINTV)
.W !,"...Turning over ASI to Interviewer for action..."
.D CONV^YSASCR(YSAIEN,YSASINTV)
.Q
I '$G(YSAS),YSASPN>0 W !,"< NO PROGRESS NOTE >"
Q:$G(YSAS)'>0
S YSASSGNT=$$FMADD^XLFDT($$NOW^XLFDT,0,0,-1)
I YSASPN>0 D
.;W !!,"...Creating ASI Progress Note..."
. ;D PN^YSASPN(YSAIEN,YSASPT,DUZ,YSASPN,.YSASPIEN,YSASSGNT)
. D MAIN^YSASPNT(YSAIEN) ;TIU Pnotes
.Q
W !,"...Closing ASI Record..."
D CR^YSASCR(YSAIEN,DUZ,$G(YSASPIEN))
W "done!",!
W !!,"<press <cr> to continue>"
R X:DTIME
Q
;other wise check id duz is interviewer and or transcriber and file in record
;
;
F(YSASFLD,YSASFLG) ;Pass field name - IEN is expected to be in YSASIEN
N DIERR
Q:$G(YSASFLD)=""
Q $$GET1^DIQ(604,YSAIEN_",",YSASFLD,$G(YSASFLG))
;
AS(X) ;Requesting Electronic Signature as - passed in X
Q "Requesting Electronic Signature as "_X