| 1 | TIUALRT ; SLC/JER,AJB - Notify Author and Attending. ; Mar 17, 2003
 | 
|---|
| 2 |  ;;1.0;TEXT INTEGRATION UTILITIES;**21,84,79,88,58,61,151,158,175,221**;Jun 20, 1997;Build 2
 | 
|---|
| 3 | SEND(DA,OVERDUE) ; Generate "available for signature" alert
 | 
|---|
| 4 |  N TIU0,TIU12,TIU13,TIU14,TIU15,TIUESNR,TIUPNM,TIUECSNR,TIUSIG,TIUDPRM
 | 
|---|
| 5 |  N TIUCOSG,TIUEDT,TIUSSN,TIU,TIUTYP,XQA,XQAKILL,XQAMSG,XQAROU,XQAID
 | 
|---|
| 6 |  N XQAFLG,STATUS,SIGACT,ECSNRFLG
 | 
|---|
| 7 |  I '$D(TIUPRM0)!'$D(TIUPRM1) D SETPARM^TIULE
 | 
|---|
| 8 |  I '$D(TIUTMP("NODEL")) D ALERTDEL(DA)
 | 
|---|
| 9 |  S TIU0=$G(^TIU(8925,+DA,0)),TIU12=$G(^(12)),TIU13=$G(^(13))
 | 
|---|
| 10 |  S TIU14=$G(^TIU(8925,+DA,14)),TIU15=$G(^(15))
 | 
|---|
| 11 |  D DOCPRM^TIULC1(+TIU0,.TIUDPRM,DA)
 | 
|---|
| 12 |  ; Quit if notifications not enabled
 | 
|---|
| 13 |  I '$D(TIUDPRM(0)) Q
 | 
|---|
| 14 |  ; If document is an addendum, and the original is incomplete, quit
 | 
|---|
| 15 |  ; per NOIS DUR-0101-32087
 | 
|---|
| 16 |  ; I +$$ISADDNDM^TIULC1(DA),($P($G(^TIU(8925,+$P(TIU0,U,6),0)),U,5)<7) Q
 | 
|---|
| 17 |  I '+$P(TIUPRM1,U,7)!(+$P(TIU12,U)<+$P(TIUPRM1,U,7)) Q
 | 
|---|
| 18 |  ;VMP/ELR  PATCH 221  DO NOT SEND ALERTS FOR RETRACTED DOCUMENTS
 | 
|---|
| 19 |  I +$P(TIU0,U,5)=15 Q
 | 
|---|
| 20 |  ; If third party alert from TIUALFUN **158**
 | 
|---|
| 21 |  I $D(TIUTMP("THIRD PARTY ALERTS")) G THIRD
 | 
|---|
| 22 |  ; If document is completed, jump to additional signers
 | 
|---|
| 23 |  I (+$P(TIU0,U,5)'<7) G ADDSNR
 | 
|---|
| 24 |  I +$P(TIU0,U,5)=3,+$P($G(TIUDPRM(0)),U,2),'+$P(TIU13,U,4) Q  ; not released **175**
 | 
|---|
| 25 |  ; If Verification required, and not verified, don't send
 | 
|---|
| 26 |  I +$P(TIU0,U,5)=4,+$$REQVER^TIULC(DA,+$P($G(TIUDPRM(0)),U,3)),'+$P(TIU13,U,5) Q  ; **175**
 | 
|---|
| 27 |  ; Set up for call to XQALERT
 | 
|---|
| 28 |  S TIUEDT=$$DATE^TIULS($P(TIU0,U,7))
 | 
|---|
| 29 |  S TIUESNR=$P(TIU12,U,4)
 | 
|---|
| 30 |  S TIUSIG=$P(TIU15,U)
 | 
|---|
| 31 |  S TIUECSNR=$P(TIU12,U,8),TIUCOSG=$P(TIU15,U,7)
 | 
|---|
| 32 |  ; If author has been identified, but not Expected Signer, make
 | 
|---|
| 33 |  ; author the expected signer
 | 
|---|
| 34 |  I +TIUESNR'>0,(+$P(TIU12,U,2)>0) D
 | 
|---|
| 35 |  . N DIE,DR
 | 
|---|
| 36 |  . S TIUESNR=$P(TIU12,U,2)
 | 
|---|
| 37 |  . S DIE=8925,DR="1204////^S X=TIUESNR" D ^DIE
 | 
|---|
| 38 |  ; If attending has been identified, but not Expected Cosigner, make
 | 
|---|
| 39 |  ; attending the expected cosigner
 | 
|---|
| 40 |  I +TIUECSNR'>0,(+$P(TIU12,U,9)>0) D
 | 
|---|
| 41 |  . N DIE,DR
 | 
|---|
| 42 |  . S TIUECSNR=$P(TIU12,U,9)
 | 
|---|
| 43 |  . S DIE=8925,DR="1208////^S X=TIUECSNR" D ^DIE
 | 
|---|
| 44 |  ; If first signature required and the expected signer is authorized
 | 
|---|
| 45 |  ; to sign this record, and the record is not yet signed
 | 
|---|
| 46 |  ; ** Set AUTHOR as recipient
 | 
|---|
| 47 |  I '+$G(TIUSIG),(+TIUESNR>0),(+$P(TIUDPRM(0),U,4)>0) S XQA(TIUESNR)=""
 | 
|---|
| 48 |  ; If the record requires cosignature, and is not yet cosigned
 | 
|---|
| 49 |  ; ** Set Expected Cosigner as recipient
 | 
|---|
| 50 |  I TIUECSNR]"",(+$P(TIU0,U,5)<7),(+$G(TIUCOSG)'>0) D
 | 
|---|
| 51 |  . N TIUDA S TIUDA=DA
 | 
|---|
| 52 |  . ; For documents other than Discharge Summaries, defer alerting
 | 
|---|
| 53 |  . ; Expected Cosigner 'til AUTHOR has signed
 | 
|---|
| 54 |  . ; If current document is an addendum apply test to its parent
 | 
|---|
| 55 |  . I +$$ISADDNDM^TIULC1(DA) S TIUDA=$P(^TIU(8925,DA,0),U,6)
 | 
|---|
| 56 |  . ; If cosigner alerts are to be deferred until signature, quit
 | 
|---|
| 57 |  . I '+$P(TIUDPRM(0),U,20),'+$G(TIUSIG),+$P(TIUDPRM(0),U,4) Q  ; **84,112/151**
 | 
|---|
| 58 |  . S XQA(TIUECSNR)="",ECSNRFLG=1 ; **151**
 | 
|---|
| 59 | ADDSNR ; Send addendum alerts, check for additional signers
 | 
|---|
| 60 |  ;VMP/ELR PATCH 221  DO NOT SEND AMENDMENT ALERT IF CAUSED BY A DELINQUENT ADDITIONAL SIGNER
 | 
|---|
| 61 |  I +$$ISADDNDM^TIULC1(DA),$G(TIUADDL)'=1 D SENDADD(DA)
 | 
|---|
| 62 |  ; If additional signers have been designated, alert them too
 | 
|---|
| 63 |  I +$O(^TIU(8925.7,"B",DA,0)),(+$P(TIU0,U,5)>5) D
 | 
|---|
| 64 |  . N TIUXTRA,TIUI D XTRASGNR^TIULG(.TIUXTRA,DA) Q:+$D(TIUXTRA)'>9
 | 
|---|
| 65 |  . S TIUI=0 F  S TIUI=$O(TIUXTRA(TIUI)) Q:+TIUI'>0  S XQA(TIUI)=""
 | 
|---|
| 66 |  Q:$D(XQA)'>9
 | 
|---|
| 67 | THIRD ; **158**
 | 
|---|
| 68 |  I $D(TIUTMP("THIRD PARTY ALERTS")) D
 | 
|---|
| 69 |  . N TIUX
 | 
|---|
| 70 |  . S TIUX="" F  S TIUX=$O(TIUXQA(TIUX)) Q:TIUX=""  S XQA(TIUX)=""
 | 
|---|
| 71 |  ; Get demographics for alert message
 | 
|---|
| 72 |  S TIUPNM=$E($P($G(^DPT(+$P(TIU0,U,2),0)),U),1,9)
 | 
|---|
| 73 |  S TIUTYP=$$PNAME^TIULC1(+$G(TIU0))
 | 
|---|
| 74 |  D PATVADPT^TIULV(.TIU,+$P(TIU0,U,2))
 | 
|---|
| 75 |  S TIUSSN=$E(TIUPNM,1)_$P($G(TIU("SSN")),"-",3)
 | 
|---|
| 76 |  S XQAID="TIU"_+DA,STATUS=$$UP^XLFSTR($$GET1^DIQ(8925,DA,.05)) ; **175** $$STATUS^TIULC(DA))
 | 
|---|
| 77 |  S SIGACT=$S(STATUS="UNSIGNED":"SIGNATURE",STATUS="UNCOSIGNED":"COSIGNATURE",1:"ADD'L SIGNATURE")
 | 
|---|
| 78 |  I $G(ECSNRFLG),$P(TIU0,U,5)=5 S STATUS="UNSIG/UNCOS'D" ; **151**
 | 
|---|
| 79 |  S XQAMSG=TIUPNM_" ("_TIUSSN_"): "_STATUS_" "_$S($P(TIU0,U,9)="P":"STAT ",1:"")_TIUTYP
 | 
|---|
| 80 |  I +$G(OVERDUE) S XQAMSG=XQAMSG_" OVERDUE for "_SIGACT_"." G ENDMSG
 | 
|---|
| 81 |  S XQAMSG=XQAMSG_" available for "_SIGACT_"."
 | 
|---|
| 82 | ENDMSG ;
 | 
|---|
| 83 |  S XQAROU="ACT^TIUALRT",XQADATA=+DA_U
 | 
|---|
| 84 |  D SETUP^XQALERT
 | 
|---|
| 85 |  Q
 | 
|---|
| 86 | ACT ; Act on alerts
 | 
|---|
| 87 |  N TIUQUIK,TIUDA,TIUPRM0,TIUPRM1,TIUPRM3,RSTOK S TIUQUIK=1 K XQAKILL
 | 
|---|
| 88 |  S TIUDA=$P(XQADATA,U)
 | 
|---|
| 89 |  I '$D(^TIU(8925,+TIUDA,0)) D ALERTDEL(TIUDA) Q
 | 
|---|
| 90 |  S RSTOK=$$DOCCHK^TIULRR(TIUDA)
 | 
|---|
| 91 |  I RSTOK'>0 D  Q
 | 
|---|
| 92 |  . W !!,$C(7),"Ok, no harm done...",! ; Echo denial message
 | 
|---|
| 93 |  . I $$READ^TIUU("EA","RETURN to continue...") ; pause
 | 
|---|
| 94 |  I $P(^TIU(8925,+TIUDA,0),U,5)'<7,'+$$ISSIGNR(TIUDA,DUZ) S XQAKILL=1
 | 
|---|
| 95 |  D:'$D(TIUPRM0)!'$D(TIUPRM1) SETPARM^TIULE
 | 
|---|
| 96 |  D EN^VALM("TIU BROWSE FOR CLINICIAN")
 | 
|---|
| 97 |  Q
 | 
|---|
| 98 | SENDTRAN(DA) ; Generate "Send back to transcription" alert
 | 
|---|
| 99 |  N TIUEDT,TIU0,TIUPNM,TIUSSN,TIUTRAN,TIU,XQA,XQAMSG,TIUMSG
 | 
|---|
| 100 |  N TIUESNR,TIU12,TIU13,TIU14,TIU15,TIUTYP
 | 
|---|
| 101 |  I '$D(TIUPRM0)!'$D(TIUPRM1) D SETPARM^TIULE
 | 
|---|
| 102 |  D ALERTDEL(DA)
 | 
|---|
| 103 |  ; Don't send if notifications not enabled
 | 
|---|
| 104 |  I '+$P(TIUPRM1,U,7) Q
 | 
|---|
| 105 |  S TIU0=$G(^TIU(8925,+DA,0)),TIU12=$G(^(12)),TIU13=$G(^(13))
 | 
|---|
| 106 |  S TIU14=$G(^TIU(8925,+DA,14)),TIU15=$G(^(15))
 | 
|---|
| 107 |  S TIUPNM=$E($P($G(^DPT(+$P(TIU0,U,2),0)),U),1,9)
 | 
|---|
| 108 |  S TIUEDT=$$DATE^TIULS($P(TIU0,U,7))
 | 
|---|
| 109 |  S TIUTYP=$$PNAME^TIULC1(+$G(TIU0))
 | 
|---|
| 110 |  S TIUTRAN=$P(TIU13,U,2),TIUESNR=$P(TIU12,U,2) ; **175**
 | 
|---|
| 111 |  D PATVADPT^TIULV(.TIU,+$P(TIU0,U,2)) ;Used to get SSN. Date not important.
 | 
|---|
| 112 |  S TIUSSN=$E(TIUPNM,1)_$P($G(TIU("SSN")),"-",3)
 | 
|---|
| 113 |  I $D(^VA(200,+TIUTRAN,0)) S XQA(TIUTRAN)=""
 | 
|---|
| 114 |  Q:$D(XQA)'>9
 | 
|---|
| 115 |  S TIUMSG=$S(TIUTRAN=TIUESNR:" needs editing",1:" needs retranscription.")
 | 
|---|
| 116 |  S XQAID="TIU"_+DA
 | 
|---|
| 117 |  S XQAMSG=TIUPNM_" ("_TIUSSN_"): "_TIUTYP_TIUMSG
 | 
|---|
| 118 |  D SETUP^XQALERT
 | 
|---|
| 119 |  Q
 | 
|---|
| 120 | SENDADD(DA) ; Generates "Addendum added" alert
 | 
|---|
| 121 |  N TIU12,TIU13,TIU14,TIU15,TIU0,TIUPNM,TIUSSN,TIUTRAN,TIU,TIUTITLE,TIUDPRM
 | 
|---|
| 122 |  N XQA,XQAMSG,XQAFLG,XQADATA,XQAROU,TIUESNR,TIUDATE,TIUESNM,TIUO0,TIUO12,TIUO13
 | 
|---|
| 123 |  I '$D(TIUPRM0)!'$D(TIUPRM1) D SETPARM^TIULE
 | 
|---|
| 124 |  D ADDENDEL(DA)
 | 
|---|
| 125 |  ; Don't send if notifications not enabled
 | 
|---|
| 126 |  I '+$P(TIUPRM1,U,7) Q
 | 
|---|
| 127 |  S TIU0=$G(^TIU(8925,+DA,0))
 | 
|---|
| 128 |  ; Only send upon completion
 | 
|---|
| 129 |  Q:+$P(TIU0,U,5)'>6
 | 
|---|
| 130 |  D DOCPRM^TIULC1(+TIU0,.TIUDPRM,DA) Q:'+$P(TIUDPRM(0),U,17)
 | 
|---|
| 131 |  S TIU12=$G(^TIU(8925,+DA,12)),TIU13=$G(^(13)),TIU14=$G(^(14)),TIU15=$G(^(15))
 | 
|---|
| 132 |  S TIUO0=$G(^TIU(8925,$P(TIU0,U,6),0)),TIUO12=$G(^(12)),TIUO13=$G(^(13))
 | 
|---|
| 133 |  S TIUPNM=$E($$PTNAME^TIULC1(+$P(TIU0,U,2)),1,9)
 | 
|---|
| 134 |  S TIUESNM=$$NAME^TIULS($$PERSNAME^TIULC1(+$P(TIU12,U,2)),"LAST,FI MI")
 | 
|---|
| 135 |  S TIUTITLE=$E($$PNAME^TIULC1(+TIUO0),1,20)
 | 
|---|
| 136 |  S TIUDATE=$S(+$P(TIUO13,U):$P(TIUO13,U),1:$G(DT))
 | 
|---|
| 137 |  S TIUDATE=$$DATE^TIULS(TIUDATE)
 | 
|---|
| 138 |  D PATVADPT^TIULV(.TIU,+$P(TIU0,U,2)) ;Used to get SSN. Date not important.
 | 
|---|
| 139 |  S TIUSSN=$E(TIUPNM,1)_$P($G(TIU("SSN")),"-",3)
 | 
|---|
| 140 |  S TIUTRAN=$P(TIU13,U,2)
 | 
|---|
| 141 |  ;Expected Cosigner and Author of original document
 | 
|---|
| 142 |  S TIUECSNR=$P($G(^TIU(8925,$P(TIU0,U,6),12)),U,8),TIUESNR=$P($G(^(12)),U,4)
 | 
|---|
| 143 |  ; Not entered by Expected Signer: SET Expected Signer as recipient
 | 
|---|
| 144 |  I TIUESNR'=TIUTRAN,$D(^VA(200,+TIUESNR,0)) S XQA(TIUESNR)=""
 | 
|---|
| 145 |  ; Not entered by Expected Cosigner: SET Expected Cosigner as recipient
 | 
|---|
| 146 |  I +TIUECSNR>0,(TIUECSNR'=TIUTRAN),$D(^VA(200,+TIUECSNR,0)) S XQA(TIUECSNR)=""
 | 
|---|
| 147 |  Q:$D(XQA)'>9
 | 
|---|
| 148 |  S XQAID="TIUADD"_+DA,XQADATA=+DA_U,XQAROU="ACTADD^TIUALRT"
 | 
|---|
| 149 |  S XQAMSG=TIUPNM_" ("_TIUSSN_"): ADDENDUM to "_TIUTITLE_" of "_TIUDATE_" by "_TIUESNM
 | 
|---|
| 150 |  D SETUP^XQALERT
 | 
|---|
| 151 |  Q
 | 
|---|
| 152 | ACTADD ; Act on ADDENDUM alerts
 | 
|---|
| 153 |  N TIUQUIK,TIUDA,TIUPRM0,TIUPRM1,TIUPRM3 S TIUQUIK=1 K XQAKILL
 | 
|---|
| 154 |  S TIUDA=$P(XQADATA,U),XQAKILL=1
 | 
|---|
| 155 |  I '$D(^TIU(8925,+TIUDA,0)) D ADDENDEL(TIUDA) Q
 | 
|---|
| 156 |  W !!,"A NEW Addendum has been added to your document...",!
 | 
|---|
| 157 |  W:$L($P($G(XQX),U,3)) !,$P($G(XQX),U,3),!
 | 
|---|
| 158 |  I '+$$READ^TIUU("YAO","Do you wish to Browse the Addendum now? ","NO") Q
 | 
|---|
| 159 |  D:'$D(TIUPRM0)!'$D(TIUPRM1) SETPARM^TIULE
 | 
|---|
| 160 |  D EN^VALM("TIU BROWSE FOR CLINICIAN")
 | 
|---|
| 161 |  Q
 | 
|---|
| 162 | ALERTDEL(DA) ; Delete alerts associated with a given document
 | 
|---|
| 163 |  N XQA,XQAID,XQAKILL S XQAID="TIU"_DA
 | 
|---|
| 164 |  D DELETEA^XQALERT
 | 
|---|
| 165 |  Q
 | 
|---|
| 166 | ADDENDEL(DA) ; Delete alert associated with a Addendum added
 | 
|---|
| 167 |  N XQA,XQAID,XQAKILL S XQAID="TIUADD"_DA
 | 
|---|
| 168 |  D DELETEA^XQALERT
 | 
|---|
| 169 |  Q
 | 
|---|
| 170 | ISSIGNR(DA,USER) ; Is USER an additional signer of document DA?
 | 
|---|
| 171 |  N TIUY,TIUSDA,TIUSD0 S (TIUY,TIUSDA)=0
 | 
|---|
| 172 |  S TIUSDA=+$O(^TIU(8925.7,"AE",DA,USER,0)) G:'TIUSDA ISSIGNX
 | 
|---|
| 173 |  S TIUSD0=$G(^TIU(8925.7,TIUSDA,0)) G:'$L(TIUSD0) ISSIGNX
 | 
|---|
| 174 |  I +$P(TIUSD0,U,4)'>0 S TIUY=1
 | 
|---|
| 175 | ISSIGNX Q TIUY
 | 
|---|