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

SD53P234.m

Go to the documentation of this file.
  1. SD53P234 ;ALB/RBS - Patch SD*5.3*234 Install Utility Routine ; 3/12/01 1:03pm
  1. ;;5.3;Scheduling;**234**;AUG 13, 1993
  1. ;
  1. ; * Note: Patch SD*5.3*212 - Baseline Seeding must have been Run *
  1. ;
  1. ; This routine will search the PCMM HL7 TRANSMISSION (#404.471) file
  1. ; for 'A'ccepted Status HL7's whose Transmission Date/Time fall
  1. ; within the dates of Oct. 23, 2000 through Oct. 31, 2000.
  1. ; These HL7's will then have their Status changed to:
  1. ; 'M' (MARKED FOR RE-TRANSMIT) in the #404.471 file.
  1. ;
  1. ; The following criteria must be true:
  1. ; 1. Must have a Baseline Run Date...
  1. ; *** AND ***
  1. ; 1a. Baseline Run Date NOT GREATER THAN Oct. 31, 2000.
  1. ; 2. BEGIN Date equals: Oct. 22, 2000@23:59 = 3001022.2359
  1. ; *** OR ***
  1. ; the Baseline Run Date (whichever greater)
  1. ; 3. END Date equals: Nov. 1, 2000@00:00 = 3001101
  1. ; 4. STATUS equals ACCEPTED
  1. ; *** AND ***
  1. ; 4a. TRANSMISSION DATE/TIME is between the BEGIN & END dates
  1. ;
  1. ;
  1. ENV ;Main entry point for Environment check point.
  1. S XPDABORT=""
  1. D PROGCHK(.XPDABORT) ;checks programmer variables
  1. D PARMCHK(.XPDABORT) ;checks param file ien exists
  1. ;
  1. N SCX
  1. I $D(^XTMP("SD53P234")) D Q
  1. .S SCX=$G(^XTMP("SD53P234",0))
  1. .D BMES^XPDUTL("*****")
  1. .D MES^XPDUTL("The PCMM HL7 Missing Message Re-queue has already run on: "_$$FMTE^XLFDT($P(SCX,U,2)))
  1. .D MES^XPDUTL("Transport global will be removed. Install will Abort.")
  1. .D MES^XPDUTL("*****")
  1. .S XPDABORT=1 ;abort install & kill all transport globals
  1. I XPDABORT="" K XPDABORT
  1. ;
  1. Q
  1. ;
  1. PRE ;Main entry point for Pre-init items.
  1. ;
  1. Q
  1. ;
  1. POST ;Main entry point for Post-init items.
  1. ;
  1. Q:$D(^XTMP("SD53P234"))
  1. D SETUP ;Setup ^XTMP audit global
  1. D POST1 ;Update Client/Server files
  1. D POST2 ;Search & MARK HL7's to be RE-TRANSMITTED
  1. Q
  1. ;
  1. PROGCHK(XPDABORT) ;checks for necessary programmer variables
  1. ;
  1. I '$G(DUZ)!($G(DUZ(0))'="@")!('$G(DT))!($G(U)'="^") D
  1. .D BMES^XPDUTL("*****")
  1. .D MES^XPDUTL("Your programming variables are not set up properly.")
  1. .D MES^XPDUTL("Installation aborted.")
  1. .D MES^XPDUTL("*****")
  1. .S XPDABORT=2
  1. Q
  1. ;
  1. PARMCHK(XPDABORT) ;checks for proper param file ien
  1. ;
  1. I '$D(^SCTM(404.44,1)) D
  1. .D BMES^XPDUTL("*****")
  1. .D MES^XPDUTL("PCMM Parameter file does not have proper IEN (1).")
  1. .D MES^XPDUTL("Installation aborted.")
  1. .D MES^XPDUTL("*****")
  1. .S XPDABORT=2
  1. Q
  1. ;
  1. POST1 ;Update client/server files.
  1. ;
  1. I $$UPCLNLST^SCMCUT("SD*5.3*234^NullClient^1^0^0") D Q
  1. .D MES^XPDUTL("Client/Server files updated.")
  1. ;
  1. D MES^XPDUTL("Client/Server files NOT updated.")
  1. Q
  1. ;
  1. POST2 ;Loop (#404.471)-PCMM HL7 TRANSMISSION LOG file
  1. ; Search for HL7's with 'A'ccepted Status and Transmission D/T within
  1. ; the Beginning and Ending date's.
  1. ;
  1. ; begin date, end date, Baseline Run date, message variables, totals
  1. N SCBDATE,SCEDATE,SCP212,SC1,SC2,SC3,SCTOT,SCTOTAL
  1. S (SC1,SC2,SC3)="",(SCP212,SCTOT,SCTOTAL)=0
  1. ;
  1. ; begin/end search dates - October 23, 2000 through October 31, 2000
  1. S SCBDATE=3001022.2359,SCEDATE=3001031.2359
  1. ;
  1. ; check for Baseline Run date
  1. D CHECK(.SCP212)
  1. Q:'SCP212
  1. ;
  1. ; search for messages to mark for retransmission
  1. D LOOP
  1. ; total up all HL7's
  1. D CNTZPC
  1. ; send user e-mail message...
  1. D MSG(SCTOT,SCTOTAL,"")
  1. ; setup ^XTMP totals
  1. N SCX
  1. S SCX=$G(^XTMP("SD53P234",0)) ;temp AUDIT global
  1. S $P(SCX,U,6)=SCTOT ;log total HL7's retransmitted
  1. S $P(SCX,U,7)=SCTOTAL ;Total HL7's since Baseline
  1. S ^XTMP("SD53P234",0)=SCX
  1. ;
  1. K ^TMP($J,"SD53P234") ;clean up
  1. Q
  1. ; *** END OF PROCESSING ***
  1. ;
  1. CNTZPC ; Total Number HL7's since Baseline Seeding to current date
  1. ; Output; SCTOTAL = total HL7's since Baseline seeding
  1. ;
  1. Q:'$D(^TMP($J,"SD53P234"))
  1. N SCSEQ
  1. S SCSEQ="" F S SCSEQ=$O(^TMP($J,"SD53P234",SCSEQ)) Q:SCSEQ="" S SCTOTAL=SCTOTAL+1
  1. Q
  1. ;
  1. LOOP ;Loop thru PCMM HL7 TRANSMISSION LOG file and find every entry
  1. ; with STATUS="A", and re-transmit.
  1. ; Output; SCTOT = total marked counter
  1. ;
  1. N SCARR,SCERR,SCTRANI,SCTRANDT,SCX
  1. S SCTRANI=0
  1. F S SCTRANI=$O(^SCPT(404.471,"ASTAT","A",SCTRANI)) Q:SCTRANI="" D
  1. .K SCARR,SCERR
  1. .S SCX=SCTRANI_","
  1. .D GETS^DIQ(404.471,SCX,".01;.02;.03;.04;.05","I","SCARR","SCERR")
  1. .Q:$D(SCERR) ;error
  1. .Q:$G(SCARR(404.471,SCX,.01,"I"))="" ;message control ID null
  1. .Q:$G(SCARR(404.471,SCX,.02,"I"))="" ;patient DFN null
  1. .Q:$G(SCARR(404.471,SCX,.03,"I"))="" ;transmission date/time null
  1. .Q:$G(SCARR(404.471,SCX,.04,"I"))'="A" ;status not equal "A"ccepted
  1. .Q:$G(SCARR(404.471,SCX,.05,"I"))="" ;ACK received date/time null
  1. .S SCTRANDT=$G(SCARR(404.471,SCX,.03,"I"))
  1. .; count actual number of 404.49 ZPC unique Provider ID's
  1. .I SCTRANDT'<SCP212 D ZPC(SCTRANI) ;count all HL7's fm Baseline
  1. .Q:SCTRANDT<SCBDATE ;begin date
  1. .Q:SCTRANDT>SCEDATE ;end date
  1. .;
  1. .D STATUS^SCMCHLRR(SCTRANI,"M") ;change status to 'M'arked
  1. .S SCTOT=SCTOT+1 ;total status changes
  1. Q
  1. ;
  1. ZPC(TRANI) ; count number of (#404.49,ien) pointers to Provider ID's
  1. ;
  1. N SCSEQ,SCSEQI,SCZPCID
  1. S (SCSEQ,SCSEQI,SCZPCID)=""
  1. F S SCSEQ=$O(^SCPT(404.471,TRANI,"ZPC","B",SCSEQ)) Q:SCSEQ="" D
  1. .F S SCSEQI=$O(^SCPT(404.471,TRANI,"ZPC","B",SCSEQ,SCSEQI)) Q:SCSEQI="" D
  1. ..S SCZPCID=$P($G(^SCPT(404.471,TRANI,"ZPC",SCSEQI,0)),"^",2)
  1. ..Q:'$D(^SCPT(404.49,SCZPCID))
  1. ..S ^TMP($J,"SD53P234",SCZPCID)=""
  1. Q
  1. ;
  1. MSG(SCTOT,SCTOTAL,SCXERR) ; send e-mail to user's
  1. ;
  1. N DIFROM,SCX,SCXSITE,SCSTIME,SCETIME,SCTEXT,XMY,XMDUZ,XMSUB,XMTEXT,XMDUN,XMZ
  1. S SCXSITE=$$SITE^VASITE
  1. S SCX=$G(^XTMP("SD53P234",0)),SCSTIME=$P(SCX,U,3) ;start date/time
  1. S SCETIME=$$NOW^XLFDT(),$P(SCX,U,4)=SCETIME ;end date/time
  1. S XMDUZ=.5,XMY(XMDUZ)="",XMY(DUZ)="",XMTEXT="SCTEXT("
  1. S XMY("G.PCMM TESTING@DOMAIN.EXT")="" ;e-mail all sites totals to
  1. S XMSUB="Patch SD*5.3*234 PCMM DATA NOT LOADED TO NPCD ("_$P(SCXSITE,U,3)_")"
  1. ;
  1. S SCTEXT(1)=""
  1. S SCTEXT(2)=" Facility Name: "_$P(SCXSITE,"^",2)
  1. S SCTEXT(3)=" Station Number: "_$P(SCXSITE,"^",3)
  1. S SCTEXT(4)=""
  1. S SCTEXT(5)=" Date/Time job started: "_$$FMTE^XLFDT(SCSTIME)
  1. S SCTEXT(6)=" Date/Time job stopped: "_$$FMTE^XLFDT(SCETIME)
  1. S SCTEXT(7)=""
  1. S SCTEXT(8)="Total HL7 messages Marked for Transmission to the AAC: "_SCTOT
  1. S SCTEXT(9)="Total Provider ID records created since Baseline Run Date("_$$FMTE^XLFDT(SCP212)_"): "_SCTOTAL
  1. I SCXERR]"" D
  1. .S SCTEXT(10)=""
  1. .S SCTEXT(11)=" * * * * E R R O R E N C O U N T E R E D * * * *"
  1. .S SCTEXT(12)=""
  1. .S SCTEXT(13)=SC1
  1. .S SCTEXT(14)=SC2
  1. .S SCTEXT(15)=""
  1. D ^XMD
  1. S ^XTMP("SD53P234",0)=SCX ;end date/time - temp audit global
  1. Q
  1. ;
  1. CHECK(SCP212) ; Determine whether or not the Baseline has run.
  1. ; Input: None
  1. ; Output:
  1. ; Function Value: Return date Baseline was run
  1. ;
  1. N SCX
  1. ; setup first line of error msg.
  1. S SC1="The PCMM HL7 Missing Message Re-queue Job was Aborted because:"
  1. I '$D(^SCTM(404.44,1)) D Q
  1. .S SC2=" Missing PCMM Parameter file entry."
  1. .D MSG(0,0,1)
  1. ;
  1. K ^TMP($J,"SD53P234")
  1. S SCX=$$GET1^DIQ(404.44,"1,",17,"I","","^TMP($J,""SD53P234"")")
  1. I $D(^TMP($J,"SD53P234")) D Q
  1. .S SC2=" FileMan Error retrieving data from PCMM Parameter file."
  1. .D MSG(0,0,1)
  1. .K ^TMP($J,"SD53P234")
  1. ;
  1. I SCX="" D Q
  1. .S SC2=" No PCMM Baseline Run Date found in the PCMM Parameter file."
  1. .D MSG(0,0,1)
  1. ;
  1. ; If Baseline Run date Greater the End search date, Quit
  1. I SCX>SCEDATE D Q
  1. .S SC2=" No PCMM HL7 Missing Message Retransmits required for your site."
  1. .S SCP212=SCX D MSG(0,0,1) S SCP212=0
  1. ;
  1. ; If Baseline Run date Greater than Begin Search date,
  1. ; then use Baseline date
  1. I SCX>SCBDATE S SCBDATE=SCX
  1. ;
  1. S SCP212=SCX ;Baseline Run Date
  1. Q
  1. ;
  1. SETUP ; setup start processing time
  1. ; The ^XTMP global will be used as an audit trail for 30 days to
  1. ; prevent this process from running more than once.
  1. ; ^XTMP("SD53P234",0)=STRING
  1. ; STRING = 7 fields of data delimited by "^" up-arrow
  1. ; 1 = purge date = date ^XTMP global will be purged
  1. ; 2 = run date = date routine was run
  1. ; 3 = start d/t = start date & time of processing
  1. ; 4 = stop d/t = stop date & time of processing
  1. ; 5 = DUZ of User= ID # of user running process
  1. ; 6 = HL7 count = Total number or HL7's marked for retransmit
  1. ; 7 = TOTAL HL7'S that should be loaded from original Baseline.
  1. ;
  1. N SCX
  1. S $P(SCX,U)=$$HTFM^XLFDT(+$H+30),$P(SCX,U,2)=$$DT^XLFDT()
  1. S $P(SCX,U,3)=$$NOW^XLFDT(),$P(SCX,U,5)=DUZ,$P(SCX,U,6)=0,$P(SCX,U,7)=0
  1. S ^XTMP("SD53P234",0)=SCX
  1. Q