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

SCMCHLM.m

Go to the documentation of this file.
  1. SCMCHLM ;BP/DJB - PCMM HL7 Mail Msgs ; 6/28/99 10:16am
  1. ;;5.3;Scheduling;**177,210,505,1015**;AUG 13, 1993;Build 21
  1. ;
  1. ;Reference routine: SCDXMSG2
  1. CMPLBULL(SENT,ERRCNT,VALER) ;Send completion bulletin
  1. ;
  1. ;Input : SENT - Number of messages sent to NPCD. Default=0.
  1. ; ERRCNT - Number of errored messages.
  1. ; VALER - Array containing error messages.
  1. ;Output : None
  1. ;
  1. ;Check input
  1. S SENT=+$G(SENT)
  1. S ERRCNT=$G(ERRCNT)
  1. S VALER=$G(VALER)
  1. ;
  1. ;Declare variables
  1. NEW MSGTXT,XMB,XMTEXT,XMY,XMDUZ,XMDT,XMZ,XMITPTR,LINE
  1. NEW ENCPTR,DELPTR,ENCDATE,ENCLOC,NAME,TMP,ENCZERO,SSN,PATZERO
  1. ;
  1. S MSGTXT="^TMP(""SCMC-XMIT-BLD"","_$J_",""BULLETIN"")"
  1. KILL @MSGTXT
  1. ;
  1. ;Put number of messages transmitted into message text
  1. S @MSGTXT@(1)="Transmission of PCMM Primary Care data to the NPCD has completed."
  1. S @MSGTXT@(2)=""
  1. S @MSGTXT@(3)="A total of "_SENT_" messages were sent."
  1. ;Put number of nontransmitted messages into message text
  1. S @MSGTXT@(4)="A total of "_ERRCNT_" messages were not sent."
  1. S @MSGTXT@(5)=""
  1. S @MSGTXT@(6)="Please review the IEMM Error listing for further detail."
  1. ;
  1. ;Set bulletin subject
  1. S XMB(1)="Transmission of data to NPCDB completed"
  1. ;Deliver bulletin
  1. S XMB="PCMM PRIMARY CARE DATA TO NPCDB SUMMARY"
  1. S XMTEXT=$P(MSGTXT,")",1)_","
  1. D ^XMB
  1. ;Done - clean up and quit
  1. KILL @MSGTXT
  1. Q
  1. ;
  1. ERRBULL(REASON) ;Send error bulletin
  1. ;
  1. ;Input : REASON - Why transmission of data could not be completed
  1. ;Output : None
  1. ;
  1. ;Check input
  1. S REASON=$G(REASON)
  1. ;
  1. ;Declare variables
  1. NEW MSGTXT,XMB,XMTEXT,XMY,XMDUZ,XMDT,XMZ
  1. ;
  1. ;Set message text
  1. S MSGTXT(1)="Transmission of PCMM Primary Care data to the CDCO"
  1. S MSGTXT(2)=" "
  1. S MSGTXT(3)="could not be completed for the following reason:"
  1. S MSGTXT(4)=" "
  1. S MSGTXT(5)=" "_REASON
  1. ;
  1. ;Set bulletin subject
  1. S XMB(1)="** TRANSMISSION OF DATA TO NPCDB NOT COMPLETED **"
  1. ;Deliver bulletin
  1. S XMB="PCMM PRIMARY CARE DATA TO NPCDB SUMMARY"
  1. S XMTEXT="MSGTXT("
  1. D ^XMB
  1. ;
  1. ;Done
  1. Q
  1. ;
  1. NOTIFY ; Description: This is used to send a message to local mail group.
  1. ; The notification message is used to alert users at the local site
  1. ; that new PCMM HL7 Transmission errors were received from the CDCO.
  1. ;
  1. ;Reference routine: SCMCHLRR
  1. ;
  1. ; Input: None
  1. ; Output: None
  1. ;
  1. ;Init variables
  1. N ACK,SCBEG,SCCNT,SCEND,SCTLIEN,SCSTAT
  1. N SCAIEN,SCADFN,SCBIEN,SCCX,SCCY,SCGLB,SCCIENB,SCCIENA,SCTPSS
  1. N SCTPOS,SCY,SCX,SCINNAM
  1. N SCHLIEN,SCHLIEN1,SCHLIEN2,SCHLIEN3,SCHLIEN4,SCHLIEN5,SCINT
  1. N SCMCIDX,SCMCIE,SCMCTMX,SCMCTPX,SCMCX,SCMGIEN,SCTP
  1. S (SCTLIEN,SCBEG,SCEND,SCCNT)=0 K ^XTMP("SCMCHLM")
  1. S ^XTMP("SCMCHLM",0)=DT_U_DT
  1. ;
  1. ;Get data from PCMM HL7 Trans Log file for records that have
  1. ;have a status of 'rejected' and 'marked for re-transmit'
  1. F SCSTAT="M","RJ" D
  1. .F S SCTLIEN=$O(^SCPT(404.471,"ASTAT",SCSTAT,SCTLIEN)) Q:SCTLIEN="" D
  1. ..;
  1. ..;if Included In Reject Bulletin? field is not 'YES'
  1. ..I $$INCLUDE^SCMCHLA(SCTLIEN)'="Y" D
  1. ...;
  1. ...;count rejects received
  1. ...S SCCNT=SCCNT+1
  1. ...;
  1. ...;get institution,team,position and message ID
  1. ...S (SCTPOS,SCTPSS,SCINNAM,SCTP)="UNK"
  1. ...S SCAIEN=$G(^SCPT(404.471,SCTLIEN,0)) D
  1. ....S SCADFN=$P(SCAIEN,U,2),SCMGIEN=$P(SCAIEN,U),SCHLIEN=0
  1. ....F S SCHLIEN=$O(^SCPT(404.471,SCTLIEN,"ZPC",SCHLIEN)) Q:SCHLIEN="" D
  1. .....S SCHLIEN1=$G(^SCPT(404.471,SCTLIEN,"ZPC",SCHLIEN,0)) Q:SCHLIEN1=""
  1. .....S SCHLIEN2=$P(SCHLIEN1,U,2),SCHLIEN3=+$G(^SCPT(404.49,SCHLIEN2,0))
  1. .....S SCHLIEN4=$G(^SCPT(404.43,SCHLIEN3,0)) Q:SCHLIEN4=""
  1. .....S SCHLIEN5=$G(^SCPT(404.42,+SCHLIEN4,0)) Q:SCHLIEN5=""
  1. .....S SCTPOS=$P(SCHLIEN4,U,2),SCTPSS=$G(^SCTM(404.57,+SCTPOS,0))
  1. .....S SCTP=$P(SCTPSS,U,2),SCY=$G(^SCTM(404.51,+SCTP,0)),SCINT=$P(SCY,U,7)
  1. .....S SCINNAM=$$GET1^DIQ(4,+SCINT_",",.01)
  1. .....I '$D(^XTMP("SCMCHLM",$J,+SCINT,+SCAIEN)) D
  1. ......S ^XTMP("SCMCHLM",$J,+SCINT,+SCAIEN,+SCHLIEN)=SCINNAM_"^"_$P(SCTPSS,U)_"^"_$P(SCY,U)
  1. ...;get date/time of 'earliest' and 'latest' reject msg
  1. ...S ACK=$$ACK^SCMCHLA(SCTLIEN)
  1. ...I 'SCBEG S SCBEG=ACK
  1. ...I ACK<SCBEG S SCBEG=ACK
  1. ...I 'SCEND S SCEND=ACK
  1. ...I ACK>SCEND S SCEND=ACK
  1. ...;
  1. ...;set Included In Reject Bulletin? field of record to 'YES'
  1. ...I $$UPDINCL^SCMCHLA(SCTLIEN,"Y")
  1. ;
  1. ;If reject msgs, then send notification message
  1. I SCCNT D SEND(SCBEG,SCEND,SCCNT)
  1. Q
  1. ;
  1. SEND(SCBEG,SCEND,SCCNT) ;
  1. ; Description: Used to send PCMM Transmission Errors Received
  1. ; notification message.
  1. ;
  1. ; Input:
  1. ; SCBEG - internal FM date/time earliest error received
  1. ; SCEND - internal FM date/time latest error received
  1. ; SCCNT - count of errors received
  1. ;
  1. ; Output: None
  1. ;
  1. N SCRANGE,TEXT,XMDUN,XMDUZ,XMTEXT,XMROU,XMSTRIP,XMSUB,XMY,XMZ
  1. ;
  1. ;Init subj/sender
  1. S XMSUB="PCMM Transmission Errors Received"
  1. S (XMDUN,XMDUZ)="PCMM Module"
  1. ;
  1. ;Recipient (mail group)
  1. S XMY("G.PCMM TRANSMISSION ERRORS")=""
  1. ;
  1. ;Message body
  1. S XMTEXT="TEXT("
  1. S TEXT(1)="PCMM reject transmissions have been received from the Corporate"
  1. S TEXT(2)="Data Center Operations (CDCO)."
  1. S TEXT(3)=""
  1. S SCRANGE=" Reject Transmissions Received: "_$$FMTE^XLFDT($G(SCBEG),"2P")_" thru "_$$FMTE^XLFDT($G(SCEND),"2P")
  1. S TEXT(4)=SCRANGE
  1. S TEXT(5)=" Total Transmissions Rejected: "_$G(SCCNT)
  1. S TEXT(6)=""
  1. S TEXT(7)="Please use the PCMM Transmission Error Processing option for a"
  1. S TEXT(8)="list of the errors associated with these rejected transmissions."
  1. S TEXT(9)=""
  1. S TEXT(10)="Institution Message ID Team Position"
  1. S TEXT(11)="=========== ========== ==== ========"
  1. S TEXT(12)=""
  1. N SCMCID,SCMCIN,SCMCIDN,SCMCTM,SCMCTP,SCMCINNM,SCMCL
  1. S SCMCL=12
  1. S SCMCIN=0 F S SCMCIN=$O(^XTMP("SCMCHLM",$J,SCMCIN)) Q:SCMCIN="" D
  1. .S SCMCID=0 F S SCMCID=$O(^XTMP("SCMCHLM",$J,SCMCIN,SCMCID)) Q:SCMCID="" D
  1. ..S SCMCIE=0 F S SCMCIE=$O(^XTMP("SCMCHLM",$J,SCMCIN,SCMCID,SCMCIE)) Q:SCMCIE<1 D
  1. ...S SCMCIDN=$G(^XTMP("SCMCHLM",$J,SCMCIN,SCMCID,SCMCIE))
  1. ...S SCMCINNM=$E($P(SCMCIDN,U,1),1,17),SCMCTM=$E($P(SCMCIDN,U,2),1,20)
  1. ...S SCMCTP=$E($P(SCMCIDN,U,3),1,20),SCMCL=SCMCL+1
  1. ...S SCMCX=SCMCINNM_$E(" ",1,20-$L(SCMCINNM))
  1. ...S SCMCIDX=$E(" ",1,15-$L(SCMCID))_SCMCID
  1. ...S SCMCX=SCMCX_SCMCIDX
  1. ...S SCMCTMX=$E(" ",1,17-$L(SCMCTM))_SCMCTM
  1. ...S SCMCX=SCMCX_SCMCTMX
  1. ...S SCMCTPX=$E(" ",1,17-$L(SCMCTP))_SCMCTP
  1. ...S SCMCX=SCMCX_SCMCTPX
  1. ...S TEXT(SCMCL)=SCMCX
  1. ;
  1. ;Mailman delivery
  1. D ^XMD
  1. K ^XTMP("SCMCHLM")
  1. Q