| 1 | SCDXMSG2 ;ALB/JRP - AMB CARE TRANSMISSION BULLETINS;01-JUL-1996 ; 1/17/02 5:07pm
 | 
|---|
| 2 |  ;;5.3;Scheduling;**44,121,128,66,132,247,393,466**;AUG 13, 1993;Build 2
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | CMPLBULL(SENT,ERRCNT,IPCNT,IPERR) ;Send completion bulletin
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  ;Input  : SENT - Number of encounters sent to NPCDB (Defaults to 0)
 | 
|---|
| 7 |  ;         ERRCNT - Contains the number of errored encounters
 | 
|---|
| 8 |  ;         IPCNT  - Number of inpatient encounters
 | 
|---|
| 9 |  ;         IPERR  - Contains the number of inpatient errored encounters
 | 
|---|
| 10 |  ;Output : None
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  ;Declare variables
 | 
|---|
| 13 |  N MSGTXT,XMB,XMTEXT,XMY,XMDUZ,XMDT,XMZ,XMITPTR,LINE
 | 
|---|
| 14 |  N ENCPTR,DELPTR,ENCDATE,ENCLOC,NAME,TMP,ENCZERO,SSN,PATZERO
 | 
|---|
| 15 |  ;Deliver bulletin
 | 
|---|
| 16 |  S XMB="SCDX AMBCARE TO NPCDB SUMMARY"
 | 
|---|
| 17 |  S XMB(1)=+$G(SENT)
 | 
|---|
| 18 |  S XMB(2)=+$G(ERRCNT)
 | 
|---|
| 19 |  S XMB(3)=+$G(SENT)-(+$G(IPCNT))
 | 
|---|
| 20 |  S XMB(4)=+$G(IPCNT)
 | 
|---|
| 21 |  S XMB(5)=+$G(ERRCNT)-(+$G(IPERR))
 | 
|---|
| 22 |  S XMB(6)=+$G(IPERR)
 | 
|---|
| 23 |  D ^XMB
 | 
|---|
| 24 |  Q
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 | ERRBULL(REASON) ;Send error bulletin
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 |  ;Input  : REASON - Why transmission of data could not be completed
 | 
|---|
| 29 |  ;Output : None
 | 
|---|
| 30 |  ;
 | 
|---|
| 31 |  ;Check input
 | 
|---|
| 32 |  S REASON=$G(REASON)
 | 
|---|
| 33 |  ;Declare variables
 | 
|---|
| 34 |  N MSGTXT,XMB,XMTEXT,XMY,XMDUZ,XMDT,XMZ
 | 
|---|
| 35 |  ;Set message text
 | 
|---|
| 36 |  S MSGTXT(1)="Transmission of data to the National Patient Care Database"
 | 
|---|
| 37 |  S MSGTXT(2)=" "
 | 
|---|
| 38 |  S MSGTXT(3)="could not be completed for the following reason:"
 | 
|---|
| 39 |  S MSGTXT(4)=" "
 | 
|---|
| 40 |  S MSGTXT(5)="  "_REASON
 | 
|---|
| 41 |  ;Set bulletin subject
 | 
|---|
| 42 |  S XMB(1)="** TRANSMISSION OF DATA TO NPCDB NOT COMPLETED **"
 | 
|---|
| 43 |  ;Deliver bulletin
 | 
|---|
| 44 |  S XMB="SCDX AMBCARE TO NPCDB SUMMARY"
 | 
|---|
| 45 |  S XMTEXT="MSGTXT("
 | 
|---|
| 46 |  D ^XMB
 | 
|---|
| 47 |  ;Done
 | 
|---|
| 48 |  Q
 | 
|---|
| 49 |  ;
 | 
|---|
| 50 | LATEACT(XMITPTR,ACT,USER,DATE) ;Send late activity bulletin
 | 
|---|
| 51 |  ;
 | 
|---|
| 52 |  ;Input :  XMITPTR - Pointer to TRANSMITTED OUTPATIENT ENCOUNTER file
 | 
|---|
| 53 |  ;                   (#409.73) that was acted upon
 | 
|---|
| 54 |  ;         ACT - Late activity that occurred
 | 
|---|
| 55 |  ;               Free text (defaults to transmission event of XMITPTR)
 | 
|---|
| 56 |  ;         USER - Who did the activity
 | 
|---|
| 57 |  ;                Pointer to NEW PERSON file (#200)
 | 
|---|
| 58 |  ;                (defaults to causer of event of XMITPTR)
 | 
|---|
| 59 |  ;         DATE - Date/time activity took place
 | 
|---|
| 60 |  ;                FileMan format (defaults to event date of XMITPTR)
 | 
|---|
| 61 |  ;Output : None
 | 
|---|
| 62 |  ;Notes  : Late activity bulletin will be sent to members of the mail
 | 
|---|
| 63 |  ;         group contained in the LATE ACTIVITY MAIL GROUP field (#217)
 | 
|---|
| 64 |  ;         of the MAS PARAMETER file (#43).  The bulletin will not be
 | 
|---|
| 65 |  ;         sent if this mail group has not been defined.
 | 
|---|
| 66 |  ;       : POSTMASTER (DUZ=.5) will be converted to 'ACRP NIGHTLY
 | 
|---|
| 67 |  ;         TRANSMISSION BUILDER' as the causer of the event
 | 
|---|
| 68 |  ;       : Bulletin will default to a transmission event if no ACT
 | 
|---|
| 69 |  ;         is specified
 | 
|---|
| 70 |  ;
 | 
|---|
| 71 |  ;Check input
 | 
|---|
| 72 |  S XMITPTR=+$G(XMITPTR)
 | 
|---|
| 73 |  Q:('$D(^SD(409.73,XMITPTR,0)))
 | 
|---|
| 74 |  S ACT=$G(ACT)
 | 
|---|
| 75 |  S USER=+$G(USER)
 | 
|---|
| 76 |  S DATE=+$G(DATE)
 | 
|---|
| 77 |  ;Declare variables
 | 
|---|
| 78 |  N NODE,ENCPTR,DELPTR,ENCDATE,XMDUZ,XMTEXT,XMSUB,XMY,MSGL,SMTB,SMTN
 | 
|---|
| 79 |  N CLOSED,DFN,CLINIC,DIV,VA,LASTXMIT,LASTACK,LASTCODE,HISTARR
 | 
|---|
| 80 |  ;Send bulletin to site specified mail group
 | 
|---|
| 81 |  ; Don't send if mail group not defined or is invalid
 | 
|---|
| 82 |  S NODE=$G(^DG(43,1,"SCLR"))
 | 
|---|
| 83 |  Q:('$P(NODE,"^",17))
 | 
|---|
| 84 |  D XMY^SDUTL2($P(NODE,"^",17),0,0)
 | 
|---|
| 85 |  Q:('$D(XMY))
 | 
|---|
| 86 |  ;Get zero node of transmission file
 | 
|---|
| 87 |  S NODE=$G(^SD(409.73,XMITPTR,0))
 | 
|---|
| 88 |  ;Set default values (if applicable)
 | 
|---|
| 89 |  I (ACT="") D  Q:(ACT="")
 | 
|---|
| 90 |  .S ACT=+$P(NODE,"^",5)
 | 
|---|
| 91 |  .I (ACT=1)!(ACT=2) S ACT="Creation/Editing of encounter" Q
 | 
|---|
| 92 |  .I (ACT=3) S ACT="Deletion of encounter" Q
 | 
|---|
| 93 |  .S ACT="Retransmission of encounter"
 | 
|---|
| 94 |  I ('USER) D
 | 
|---|
| 95 |  .S USER=+$P(NODE,"^",7)
 | 
|---|
| 96 |  .S:('USER) USER=+$G(DUZ)
 | 
|---|
| 97 |  S:(USER=.5) USER="ACRP NIGHTLY TRANSMISSION BUILDER"
 | 
|---|
| 98 |  I ('DATE) S DATE=+$P(NODE,"^",6) S:('DATE) DATE=$$DT^XLFDT()
 | 
|---|
| 99 |  ;Get pointer to encounter and deleted encounter
 | 
|---|
| 100 |  S ENCPTR=+$P(NODE,"^",2)
 | 
|---|
| 101 |  S DELPTR=+$P(NODE,"^",3)
 | 
|---|
| 102 |  ;Get zero node of [deleted] encounter
 | 
|---|
| 103 |  S NODE=""
 | 
|---|
| 104 |  S:(ENCPTR) NODE=$G(^SCE(ENCPTR,0))
 | 
|---|
| 105 |  S:('ENCPTR) NODE=$G(^SD(409.74,DELPTR,1))
 | 
|---|
| 106 |  ;Get date/time of encounter
 | 
|---|
| 107 |  S ENCDATE=+NODE
 | 
|---|
| 108 |  ;Get DFN
 | 
|---|
| 109 |  S DFN=+$P(NODE,"^",2)
 | 
|---|
| 110 |  ;Get clinic pointer
 | 
|---|
| 111 |  S CLINIC=+$P(NODE,"^",4)
 | 
|---|
| 112 |  ;Get division
 | 
|---|
| 113 |  S DIV=+$P(NODE,"^",11)
 | 
|---|
| 114 |  ;Get transmission history
 | 
|---|
| 115 |  S (LASTXMIT,LASTACK,LASTCODE)=""
 | 
|---|
| 116 |  S HISTARR=$NA(^TMP("SCDXMSG2",$J,"HIST"))
 | 
|---|
| 117 |  K @HISTARR
 | 
|---|
| 118 |  I ($$HST4XMIT^SCDXFU13(XMITPTR,HISTARR,1)) D
 | 
|---|
| 119 |  .;Get last xmit date
 | 
|---|
| 120 |  .S LASTXMIT=+$O(@HISTARR@(""),-1)
 | 
|---|
| 121 |  .Q:('LASTXMIT)
 | 
|---|
| 122 |  .;Get ack info for last xmit
 | 
|---|
| 123 |  .S LASTACK=$G(@HISTARR@(LASTXMIT))
 | 
|---|
| 124 |  .S LASTCODE=$P(LASTACK,"^",3)
 | 
|---|
| 125 |  .S LASTACK=$P(LASTACK,"^",2)
 | 
|---|
| 126 |  K @HISTARR
 | 
|---|
| 127 |  ;Determine the level of acceptance for data base credit and/or
 | 
|---|
| 128 |  ;workload credit
 | 
|---|
| 129 |  S MSGL=$$XMIT4DBC^SCDXFU04(XMITPTR)
 | 
|---|
| 130 |  Q:MSGL<1!(MSGL>4)  ; Only four levels of messages are defined
 | 
|---|
| 131 |  ; 0 - no message, transmit
 | 
|---|
| 132 |  ; 5 - no transmit; error 
 | 
|---|
| 133 |  ;Build message
 | 
|---|
| 134 |  S SMTB="The following activity occurred "
 | 
|---|
| 135 |  S XMTEXT(1)=SMTB_"after the National Patient Care"
 | 
|---|
| 136 |  S XMTEXT(2)="Database was closed"
 | 
|---|
| 137 |  I MSGL=4 S XMTEXT(2)=XMTEXT(2)_"."
 | 
|---|
| 138 |  I MSGL=3 D
 | 
|---|
| 139 |  .S XMTEXT(2)=XMTEXT(2)_" for yearly workload credit but will be sent"
 | 
|---|
| 140 |  .S XMTEXT(3)="to the NPCD for historical accuracy of the database."
 | 
|---|
| 141 |  I MSGL=2 D
 | 
|---|
| 142 |  .S XMTEXT(2)=XMTEXT(2)_" for monthly workload credit but will be sent"
 | 
|---|
| 143 |  .S XMTEXT(3)="to the NPCD to be included in the fiscal year totals."
 | 
|---|
| 144 |  I MSGL=1 D
 | 
|---|
| 145 |  .; the rolling 20-day message is based on setup of ROLLD=19 in
 | 
|---|
| 146 |  .; CLOSEOUT^SCDXFU04
 | 
|---|
| 147 |  .S XMTEXT(1)=SMTB_"20 or more days after the encounter"
 | 
|---|
| 148 |  .S XMTEXT(2)="date but is valid for workload credit and will be sent"
 | 
|---|
| 149 |  .S XMTEXT(3)="to the National Patient Care Database."
 | 
|---|
| 150 |  S SMTN=$S(MSGL=4:3,1:4) S XMTEXT(SMTN)=" "
 | 
|---|
| 151 |  S XMTEXT(SMTN+1)="  Activity: "_ACT
 | 
|---|
| 152 |  S XMTEXT(SMTN+2)="Entered By: "_$S(USER:$P($G(^VA(200,USER,0)),"^",1),1:USER)
 | 
|---|
| 153 |  S XMTEXT(SMTN+3)="Entered On: "_$$FMTE^XLFDT(DATE)
 | 
|---|
| 154 |  S XMTEXT(SMTN+4)=" "
 | 
|---|
| 155 |  S XMTEXT(SMTN+5)="        Encounter Date: "_$$FMTE^XLFDT(ENCDATE)_"  (#"_$S(ENCPTR:ENCPTR,1:DELPTR)_")"
 | 
|---|
| 156 |  S:('ENCPTR) XMTEXT(SMTN+5)=XMTEXT(SMTN+5)_"  ** Deleted Encounter **"
 | 
|---|
| 157 |  S XMTEXT(SMTN+6)="Last NPCD Transmission: "_$S(LASTXMIT:$$FMTE^XLFDT(LASTXMIT),1:"Encounter data never transmitted ")_"  (#"_XMITPTR_")"
 | 
|---|
| 158 |  S XMTEXT(SMTN+7)="Last NPCD Ack Received: "_$S(LASTACK:$$FMTE^XLFDT(+LASTACK),1:"Acknowledgement not received")
 | 
|---|
| 159 |  S:(LASTACK) XMTEXT(SMTN+7)=XMTEXT(SMTN+7)_"  ("_$S((LASTCODE'=""):$$EXTERNAL^DILFD(409.73,15,"",LASTCODE),1:"Status unknown")_")"
 | 
|---|
| 160 |  S XMTEXT(SMTN+8)=" "
 | 
|---|
| 161 |  S XMTEXT(SMTN+9)=" Clinic: "_$P($G(^SC(CLINIC,0)),"^",1)
 | 
|---|
| 162 |  D PID^VADPT6
 | 
|---|
| 163 |  S XMTEXT(SMTN+10)="Patient: "_$P($G(^DPT(DFN,0)),"^",1)_"  ("_VA("BID")_")"
 | 
|---|
| 164 |  ;Send message
 | 
|---|
| 165 |  S XMSUB="Late ACRP Related Activity"_$$DIV^SDAMEVT1(DIV)
 | 
|---|
| 166 |  S XMTEXT="XMTEXT("
 | 
|---|
| 167 |  S XMDUZ=.5
 | 
|---|
| 168 |  S:(USER) XMY(USER)=""
 | 
|---|
| 169 |  D ^XMD    ; REMOVE COMMENT
 | 
|---|
| 170 |  ;Done
 | 
|---|
| 171 |  Q
 | 
|---|