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

DGQEBGR.m

Go to the documentation of this file.
  1. DGQEBGR ;ALB/RPM - VIC REPLACEMENT BACKGROUND JOB PROCESSOR ; 1/2/2004
  1. ;;5.3;Registration;**571,1015**;Aug 13, 1993;Build 21
  1. ;
  1. Q ;no direct entry
  1. ;
  1. EN ;main entry point
  1. ;
  1. D PURGE ;purge completed requests over 7 days old
  1. D CKHOLD ;check "H"old status requests and update if needed
  1. D SNDHL7 ;send queued HL7 messages
  1. Q
  1. ;
  1. PURGE ;purge completed VIC requests
  1. ; This subroutine deletes all VIC REQUEST (#39.6) records and their
  1. ; associated VIC HL7 TRANSMISSION LOG (#39.7) records for all VIC
  1. ; requests that fulfill the following conditions:
  1. ; 1. VIC request Card Print Release Status is not "H"old
  1. ; 2. VIC request is over 7 days old
  1. ; 3. Last HL7 transmission status associated with the request is
  1. ; an Accept acknowledgment
  1. ;
  1. ; Supported DBIA#: 10103 - $$FMADD^XLFDT, $$NOW^XLFDT
  1. ;
  1. ; Input: none
  1. ;
  1. ; Output: none
  1. ;
  1. N DGSTAT ;card print release status
  1. N DGCODT ;purge cutoff date
  1. N DGIEN ;VIC REQUEST IEN
  1. N DGLIEN ;VIC HL7 TRANSMISSION LOG IEN
  1. N DGLOG ;VIC HL7 TRANSMISSION LOG data array
  1. N DGRQDT ;VIC request date
  1. ;
  1. S DGCODT=$$FMADD^XLFDT($$NOW^XLFDT(),-$$PRGDAYS())
  1. F DGSTAT="C","I","P" D
  1. . S DGRQDT=0
  1. . F S DGRQDT=$O(^DGQE(39.6,"ASTAT",DGSTAT,DGRQDT)) Q:('DGRQDT!(DGRQDT>DGCODT)) D
  1. . . S DGIEN=0
  1. . . F S DGIEN=$O(^DGQE(39.6,"ASTAT",DGSTAT,DGRQDT,DGIEN)) Q:'DGIEN D
  1. . . . S DGLIEN=$$FINDLST^DGQEHLL(DGIEN)
  1. . . . I $$GETLOG^DGQEHLL(DGLIEN,.DGLOG),$G(DGLOG("XMSTAT"))="A" D
  1. . . . . ;
  1. . . . . ;delete the request and HL7 transmission records
  1. . . . . I $$DELREQ^DGQEREQ(DGIEN)
  1. ;
  1. Q
  1. ;
  1. ;
  1. CKHOLD ;check all "H"old status requests for updates
  1. ; This subroutine evaluates the VIC eligibility for all VIC requests
  1. ; that have a "H"old Card Print Release Status and updates the Status
  1. ; if needed. When a VIC request retains a "H"old Card Print Release
  1. ; Status for more than the value returned by $$EXPDAYS^DGQEUT2(),
  1. ; the Card Print Release Status is changed to "C"ancel.
  1. ;
  1. ; Supported DBIA: #10103 - $$FMADD^XLFDT, $$NOW^XLFDT
  1. ;
  1. ; Input: none
  1. ;
  1. ; Output: none
  1. ;
  1. N DGCODT ;cutoff date
  1. N DGDAT ;request date
  1. N DGELG ;eligibility data array
  1. N DGIEN ;VIC REQUEST ien
  1. N DGREQ ;VIC REQUEST data array
  1. N DGSTAT ;card print release status
  1. ;
  1. ;set cutoff date for "H"old request expiration
  1. S DGCODT=$$FMADD^XLFDT($$NOW^XLFDT(),-$$EXPDAYS)
  1. S DGDAT=0
  1. F S DGDAT=$O(^DGQE(39.6,"ASTAT","H",DGDAT)) Q:'DGDAT D
  1. . S DGIEN=0
  1. . F S DGIEN=$O(^DGQE(39.6,"ASTAT","H",DGDAT,DGIEN)) Q:'DGIEN D
  1. . . ;drop out of block on first failure
  1. . . ;
  1. . . S DGSTAT=""
  1. . . ;
  1. . . ;get request record
  1. . . Q:'$$GETREQ^DGQEREQ(DGIEN,.DGREQ)
  1. . . Q:'$G(DGREQ("DFN"))
  1. . . ;
  1. . . ;build eligibility data array
  1. . . Q:'$$GETELIG^DGQEUT1(DGREQ("DFN"),.DGELG)
  1. . . S DGELG("ICN")=$$GETICN^DGQEDEMO(DGREQ("DFN")) ;add ICN to array
  1. . . ;
  1. . . ;re-evaluate Card Print Release Status
  1. . . I $$HOLD^DGQEUT2(.DGELG) D
  1. . . . ;
  1. . . . ;set Status to "C"ancel when "H"old request expires
  1. . . . I $G(DGREQ("REQDT"))>0,DGREQ("REQDT")<DGCODT S DGSTAT="C"
  1. . . E D
  1. . . . S DGSTAT=$S($$VICELIG^DGQEUT2(.DGELG):"P",1:"I")
  1. . . ;
  1. . . ;store status and queue HL7 message
  1. . . I DGSTAT]"" D STOSTAT^DGQEREQ(DGIEN,DGSTAT)
  1. ;
  1. Q
  1. ;
  1. ;
  1. SNDHL7 ;send queued General Order (ORM~O01) HL7 messages to NCMD
  1. ; This subroutine transmits a General Order (ORM~O01) HL7 message
  1. ; to the National Card Management Directory for each entry in the
  1. ; "XMIT" index of the VIC REQUEST (#39.6) file.
  1. ;
  1. ; Input: none
  1. ;
  1. ; Output: none
  1. ;
  1. N DGIEN
  1. ;
  1. S DGIEN=0
  1. F S DGIEN=$O(^DGQE(39.6,"AXMIT",DGIEN)) Q:'DGIEN D
  1. . I $$SND^DGQEHLS(DGIEN)
  1. Q
  1. ;
  1. EXPDAYS() ;return VIC request expiration days
  1. ; This function returns the number of days that a pending VIC request
  1. ; is retained before being automatically cancelled. The value is
  1. ; contained in the PACKAGE ("PKG") entity of the DGQE VIC REQUEST
  1. ; EXPIRATION parameter.
  1. ;
  1. ; Input:
  1. ; none
  1. ;
  1. ; Output:
  1. ; Function value - DGQE VIC REQUEST EXPIRATION parameter [DEFAULT=90]
  1. ;
  1. N DGVAL
  1. S DGVAL=$$GET^XPAR("PKG","DGQE VIC REQUEST EXPIRATION",1,"Q")
  1. Q $S(DGVAL="":90,1:DGVAL)
  1. ;
  1. PRGDAYS() ;return VIC request purge days
  1. ; This function returns the number of days that a completed VIC request
  1. ; is retained before being purged. The value is contained in the
  1. ; PACKAGE ("PKG") entity of the DGQE VIC REQUEST PURGE parameter.
  1. ;
  1. ; Input:
  1. ; none
  1. ;
  1. ; Output:
  1. ; Function value - DGQE VIC REQUEST PURGE parameter [DEFAULT=7]
  1. ;
  1. N DGVAL
  1. S DGVAL=$$GET^XPAR("PKG","DGQE VIC REQUEST PURGE",1,"Q")
  1. Q $S(DGVAL="":7,1:DGVAL)