Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: TIUALRT

TIUALRT.m

Go to the documentation of this file.
  1. TIUALRT ; SLC/JER,AJB - Notify Author and Attending. ;10-Mar-2014 15:28;DU
  1. ;;1.0;TEXT INTEGRATION UTILITIES;**21,84,79,88,58,61,151,158,175,1009,221,1011,227,259,1013**;Jun 20, 1997;Build 33
  1. ;IHS/ITSC/LJF 02/21/2003
  1. ; -- changed SSN to HRCN
  1. ; -- removed code forcing attending to be cosigner
  1. SEND(DA,OVERDUE) ; Generate "available for signature" alert
  1. ;ICR 10035 ^DPT( .01 NAME 0;1 Direct Global Read
  1. N TIU0,TIU12,TIU13,TIU14,TIU15,TIUDATE,TIUESNR,TIUPNM,TIUECSNR,TIUSIG,TIUDPRM
  1. N TIUCOSG,TIUEDT,TIUSSN,TIU,TIUTYP,XQA,XQAKILL,XQAMSG,XQAROU,XQAID
  1. N XQAFLG,STATUS,SIGACT,ECSNRFLG
  1. N XQADATA ;259
  1. I '$D(TIUPRM0)!'$D(TIUPRM1) D SETPARM^TIULE
  1. I '$D(TIUTMP("NODEL")) D ALERTDEL(DA)
  1. S TIU0=$G(^TIU(8925,+DA,0)),TIU12=$G(^(12)),TIU13=$G(^(13))
  1. S TIU14=$G(^TIU(8925,+DA,14)),TIU15=$G(^(15))
  1. D DOCPRM^TIULC1(+TIU0,.TIUDPRM,DA)
  1. ; Quit if notifications not enabled
  1. I '$D(TIUDPRM(0)) Q
  1. ; If document is an addendum, and the original is incomplete, quit
  1. ; per NOIS DUR-0101-32087
  1. ; I +$$ISADDNDM^TIULC1(DA),($P($G(^TIU(8925,+$P(TIU0,U,6),0)),U,5)<7) Q
  1. I '+$P(TIUPRM1,U,7)!(+$P(TIU12,U)<+$P(TIUPRM1,U,7)) Q
  1. ;VMP/ELR PATCH 221 DO NOT SEND ALERTS FOR RETRACTED DOCUMENTS
  1. I +$P(TIU0,U,5)=15 Q
  1. ; If third party alert from TIUALFUN **158**
  1. I $D(TIUTMP("THIRD PARTY ALERTS")) G THIRD
  1. ; If document is completed, jump to additional signers
  1. I (+$P(TIU0,U,5)'<7) G ADDSNR
  1. I +$P(TIU0,U,5)=3,+$P($G(TIUDPRM(0)),U,2),'+$P(TIU13,U,4) Q ; not released **175**
  1. ; If Verification required, and not verified, don't send
  1. I +$P(TIU0,U,5)=4,+$$REQVER^TIULC(DA,+$P($G(TIUDPRM(0)),U,3)),'+$P(TIU13,U,5) Q ; **175**
  1. ; Set up for call to XQALERT
  1. S TIUEDT=$$DATE^TIULS($P(TIU0,U,7))
  1. S TIUESNR=$P(TIU12,U,4)
  1. S TIUSIG=$P(TIU15,U)
  1. S TIUECSNR=$P(TIU12,U,8),TIUCOSG=$P(TIU15,U,7)
  1. ; If author has been identified, but not Expected Signer, make
  1. ; author the expected signer
  1. I +TIUESNR'>0,(+$P(TIU12,U,2)>0) D
  1. . N DIE,DR
  1. . S TIUESNR=$P(TIU12,U,2)
  1. . S DIE=8925,DR="1204////^S X=TIUESNR" D ^DIE
  1. ; If attending has been identified, but not Expected Cosigner, make
  1. ; attending the expected cosigner
  1. ;IHS/ITSC/LJF 02/21/2003 - IHS does not always require attending to be cosigner
  1. ;I +TIUECSNR'>0,(+$P(TIU12,U,9)>0) D
  1. ;. N DIE,DR
  1. ;. S TIUECSNR=$P(TIU12,U,9)
  1. ;. S DIE=8925,DR="1208////^S X=TIUECSNR" D ^DIE
  1. ;IHS/ITSC/LJF 02/21/2003 end of commented out code
  1. ;
  1. ; If first signature required and the expected signer is authorized
  1. ; to sign this record, and the record is not yet signed
  1. ; ** Set AUTHOR as recipient
  1. I '+$G(TIUSIG),(+TIUESNR>0),(+$P(TIUDPRM(0),U,4)>0) S XQA(TIUESNR)=""
  1. ; If the record requires cosignature, and is not yet cosigned
  1. ; ** Set Expected Cosigner as recipient
  1. I TIUECSNR]"",(+$P(TIU0,U,5)<7),(+$G(TIUCOSG)'>0) D
  1. . N TIUDA S TIUDA=DA
  1. . ; For documents other than Discharge Summaries, defer alerting
  1. . ; Expected Cosigner 'til AUTHOR has signed
  1. . ; If current document is an addendum apply test to its parent
  1. . I +$$ISADDNDM^TIULC1(DA) S TIUDA=$P(^TIU(8925,DA,0),U,6)
  1. . ; If cosigner alerts are to be deferred until signature, quit
  1. . I '+$P(TIUDPRM(0),U,20),'+$G(TIUSIG),+$P(TIUDPRM(0),U,4) Q ; **84,112/151**
  1. . S XQA(TIUECSNR)="",ECSNRFLG=1 ; **151**
  1. ADDSNR ; Send addendum alerts, check for additional signers
  1. ;VMP/ELR PATCH 221 DO NOT SEND AMENDMENT ALERT IF CAUSED BY A DELINQUENT ADDITIONAL SIGNER
  1. I +$$ISADDNDM^TIULC1(DA),$G(TIUADDL)'=1 D SENDADD(DA)
  1. ; If additional signers have been designated, alert them too
  1. I +$O(^TIU(8925.7,"B",DA,0)),(+$P(TIU0,U,5)>5) D
  1. . N TIUXTRA,TIUI D XTRASGNR^TIULG(.TIUXTRA,DA) Q:+$D(TIUXTRA)'>9
  1. . S TIUI=0 F S TIUI=$O(TIUXTRA(TIUI)) Q:+TIUI'>0 S XQA(TIUI)=""
  1. Q:$D(XQA)'>9
  1. THIRD ; **158**
  1. I $D(TIUTMP("THIRD PARTY ALERTS")) D
  1. . N TIUX
  1. . S TIUX="" F S TIUX=$O(TIUXQA(TIUX)) Q:TIUX="" S XQA(TIUX)=""
  1. ; Get demographics for alert message
  1. S TIUPNM=$E($P($G(^DPT(+$P(TIU0,U,2),0)),U),1,9)
  1. S TIUTYP=$$PNAME^TIULC1(+$G(TIU0))
  1. D PATVADPT^TIULV(.TIU,+$P(TIU0,U,2))
  1. ;
  1. ;S TIUSSN=$E(TIUPNM,1)_$P($G(TIU("SSN")),"-",3) ;IHS/ITSC/LJF 02/21/2003
  1. S TIUSSN=$G(TIU("HRCN")) ;IHS/ITSC/LJF 02/21/2003
  1. S XQAID="TIU"_+DA,STATUS=$$UP^XLFSTR($$GET1^DIQ(8925,DA,.05)) ; **175** $$STATUS^TIULC(DA))
  1. S SIGACT=$S(STATUS="UNSIGNED":"SIGNATURE",STATUS="UNCOSIGNED":"COSIGNATURE",1:"ADD'L SIGNATURE")
  1. I $G(ECSNRFLG),$P(TIU0,U,5)=5 S STATUS="UNSIG/UNCOS'D" ; **151**
  1. ;I STATUS="UNCOSIGNED" S STATUS="UNCOS'D"
  1. ;I $G(OVERDUE) S TIUTYP=$E(TIUTYP,1,42-$L(STATUS))
  1. S XQAMSG=TIUPNM_" ("_TIUSSN_"): "_STATUS_" "_$S($P(TIU0,U,9)="P":"STAT ",1:"")_TIUTYP
  1. ;I +$G(OVERDUE) S XQAMSG=XQAMSG_" OVERDUE for "_SIGACT_"." G ENDMSG
  1. I +$G(OVERDUE) D G ENDMSG ; TIU,259
  1. . S TIUDATE=$$DATE^TIULS(+TIU13)
  1. . S XQAMSG=XQAMSG_" Dated "_TIUDATE_" OVERDUE for "_SIGACT_"."
  1. . ;S XQAMSG=XQAMSG_": "_TIUDATE_" OVERDUE for "_SIGACT_"."
  1. S XQAMSG=XQAMSG_" available for "_SIGACT_"."
  1. ENDMSG ;
  1. S XQAROU="ACT^TIUALRT",XQADATA=+DA_U
  1. D SETUP^XQALERT
  1. Q
  1. ACT ; Act on alerts
  1. N TIUQUIK,TIUDA,TIUPRM0,TIUPRM1,TIUPRM3,RSTOK S TIUQUIK=1 K XQAKILL
  1. S TIUDA=$P(XQADATA,U)
  1. I '$D(^TIU(8925,+TIUDA,0)) D ALERTDEL(TIUDA) Q
  1. S RSTOK=$$DOCCHK^TIULRR(TIUDA)
  1. I RSTOK'>0 D Q
  1. . W !!,$C(7),"Ok, no harm done...",! ; Echo denial message
  1. . I $$READ^TIUU("EA","RETURN to continue...") ; pause
  1. I $P(^TIU(8925,+TIUDA,0),U,5)'<7,'+$$ISSIGNR(TIUDA,DUZ) S XQAKILL=1
  1. D:'$D(TIUPRM0)!'$D(TIUPRM1) SETPARM^TIULE
  1. D EN^VALM("TIU BROWSE FOR CLINICIAN")
  1. Q
  1. SENDTRAN(DA) ; Generate "Send back to transcription" alert
  1. N TIUEDT,TIU0,TIUPNM,TIUSSN,TIUTRAN,TIU,XQA,XQAMSG,TIUMSG
  1. N TIUESNR,TIU12,TIU13,TIU14,TIU15,TIUTYP
  1. N XQAID ;259
  1. I '$D(TIUPRM0)!'$D(TIUPRM1) D SETPARM^TIULE
  1. D ALERTDEL(DA)
  1. ; Don't send if notifications not enabled
  1. I '+$P(TIUPRM1,U,7) Q
  1. S TIU0=$G(^TIU(8925,+DA,0)),TIU12=$G(^(12)),TIU13=$G(^(13))
  1. S TIU14=$G(^TIU(8925,+DA,14)),TIU15=$G(^(15))
  1. S TIUPNM=$E($P($G(^DPT(+$P(TIU0,U,2),0)),U),1,9)
  1. S TIUEDT=$$DATE^TIULS($P(TIU0,U,7))
  1. S TIUTYP=$$PNAME^TIULC1(+$G(TIU0))
  1. S TIUTRAN=$P(TIU13,U,2),TIUESNR=$P(TIU12,U,2) ; **175**
  1. D PATVADPT^TIULV(.TIU,+$P(TIU0,U,2)) ;Used to get SSN. Date not important.
  1. ;
  1. ;S TIUSSN=$E(TIUPNM,1)_$P($G(TIU("SSN")),"-",3) ;IHS/ITSC/LJF 02/21/2003
  1. S TIUSSN=$G(TIU("HRCN")) ;IHS/ITSC/LJF 02/21/2003
  1. ;I $D(^VA(200,+TIUTRAN,0)) S XQA(TIUTRAN)=""
  1. I $$PROVIDER^XUSER(TIUTRAN) S XQA(TIUTRAN)="" ;ICR #2343 In file 200 & not terminated
  1. Q:$D(XQA)'>9
  1. S TIUMSG=$S(TIUTRAN=TIUESNR:" needs editing",1:" needs retranscription.")
  1. S XQAID="TIU"_+DA
  1. S XQAMSG=TIUPNM_" ("_TIUSSN_"): "_TIUTYP_TIUMSG
  1. D SETUP^XQALERT
  1. Q
  1. SENDADD(DA) ; Generates "Addendum added" alert
  1. N TIU12,TIU13,TIU14,TIU15,TIU0,TIUPNM,TIUSSN,TIUTRAN,TIU,TIUTITLE,TIUDPRM
  1. N XQA,XQAMSG,XQAFLG,XQADATA,XQAROU,TIUESNR,TIUDATE,TIUESNM,TIUO0,TIUO12,TIUO13
  1. N XQAID,TIUECSNR ;P259
  1. I '$D(TIUPRM0)!'$D(TIUPRM1) D SETPARM^TIULE
  1. D ADDENDEL(DA)
  1. ; Don't send if notifications not enabled
  1. I '+$P(TIUPRM1,U,7) Q
  1. S TIU0=$G(^TIU(8925,+DA,0))
  1. ; Only send upon completion
  1. Q:+$P(TIU0,U,5)'>6
  1. D DOCPRM^TIULC1(+TIU0,.TIUDPRM,DA) Q:'+$P(TIUDPRM(0),U,17)
  1. S TIU12=$G(^TIU(8925,+DA,12)),TIU13=$G(^(13)),TIU14=$G(^(14)),TIU15=$G(^(15))
  1. S TIUO0=$G(^TIU(8925,$P(TIU0,U,6),0)),TIUO12=$G(^(12)),TIUO13=$G(^(13))
  1. S TIUPNM=$E($$PTNAME^TIULC1(+$P(TIU0,U,2)),1,9)
  1. S TIUESNM=$$NAME^TIULS($$PERSNAME^TIULC1(+$P(TIU12,U,2)),"LAST,FI MI")
  1. S TIUTITLE=$E($$PNAME^TIULC1(+TIUO0),1,20)
  1. S TIUDATE=$S(+$P(TIUO13,U):$P(TIUO13,U),1:$G(DT))
  1. S TIUDATE=$$DATE^TIULS(TIUDATE)
  1. D PATVADPT^TIULV(.TIU,+$P(TIU0,U,2)) ;Used to get SSN. Date not important.
  1. S TIUSSN=$E(TIUPNM,1)_$P($G(TIU("SSN")),"-",3)
  1. S TIUTRAN=$P(TIU13,U,2)
  1. ;Expected Cosigner and Author of original document
  1. S TIUECSNR=$P($G(^TIU(8925,$P(TIU0,U,6),12)),U,8),TIUESNR=$P($G(^(12)),U,4)
  1. ; Not entered by Expected Signer: SET Expected Signer as recipient
  1. I TIUESNR'=TIUTRAN,$D(^VA(200,+TIUESNR,0)) S XQA(TIUESNR)=""
  1. ; Not entered by Expected Cosigner: SET Expected Cosigner as recipient
  1. ; VMP/RJT - *227 - If user is the expected cosigner, do not send alert
  1. I +TIUECSNR>0,(TIUECSNR'=DUZ),(TIUECSNR'=TIUTRAN),$D(^VA(200,+TIUECSNR,0)) S XQA(TIUECSNR)=""
  1. Q:$D(XQA)'>9
  1. S XQAID="TIUADD"_+DA,XQADATA=+DA_U,XQAROU="ACTADD^TIUALRT"
  1. S XQAMSG=TIUPNM_" ("_TIUSSN_"): ADDENDUM to "_TIUTITLE_" of "_TIUDATE_" by "_TIUESNM
  1. D SETUP^XQALERT
  1. Q
  1. ACTADD ; Act on ADDENDUM alerts
  1. N TIUQUIK,TIUDA,TIUPRM0,TIUPRM1,TIUPRM3 S TIUQUIK=1 K XQAKILL
  1. S TIUDA=$P(XQADATA,U),XQAKILL=1
  1. I '$D(^TIU(8925,+TIUDA,0)) D ADDENDEL(TIUDA) Q
  1. W !!,"A NEW Addendum has been added to your document...",!
  1. W:$L($P($G(XQX),U,3)) !,$P($G(XQX),U,3),!
  1. I '+$$READ^TIUU("YAO","Do you wish to Browse the Addendum now? ","NO") Q
  1. D:'$D(TIUPRM0)!'$D(TIUPRM1) SETPARM^TIULE
  1. D EN^VALM("TIU BROWSE FOR CLINICIAN")
  1. Q
  1. ALERTDEL(DA) ; Delete alerts associated with a given document
  1. N XQA,XQAID,XQAKILL S XQAID="TIU"_DA
  1. D DELETEA^XQALERT
  1. Q
  1. ADDENDEL(DA) ; Delete alert associated with a Addendum added
  1. N XQA,XQAID,XQAKILL S XQAID="TIUADD"_DA
  1. D DELETEA^XQALERT
  1. Q
  1. ISSIGNR(DA,USER) ; Is USER an additional signer of document DA?
  1. N TIUY,TIUSDA,TIUSD0 S (TIUY,TIUSDA)=0
  1. S TIUSDA=+$O(^TIU(8925.7,"AE",DA,USER,0)) G:'TIUSDA ISSIGNX
  1. S TIUSD0=$G(^TIU(8925.7,TIUSDA,0)) G:'$L(TIUSD0) ISSIGNX
  1. I +$P(TIUSD0,U,4)'>0 S TIUY=1
  1. ISSIGNX Q TIUY