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

DGQEREQ.m

Go to the documentation of this file.
  1. DGQEREQ ;ALB/RPM - VIC REPLACEMENT VIC REQUEST FILE ACCESS API'S ; 12/09/03
  1. ;;5.3;Registration;**571,1015**;Aug 13, 1993;Build 21
  1. ;
  1. ; This routine contains the functions and procedures used to access
  1. ; and manipulate the VIC REQUEST (#39.6) file.
  1. ;
  1. ; $$FINDCID - locate NCMD Card ID
  1. ; $$FINDLST - locate last (most recent) VIC request
  1. ; $$GETREQ - retrieve a single VIC REQUEST record
  1. ; $$STOCID - store the NCMD Card ID
  1. ; $$STOSTAT - store the Card Print Release Status
  1. ; $$DELREQ - delete a single VIC REQUEST record
  1. ;
  1. Q ;no direct entry
  1. ;
  1. FINDCID(DGCID) ;locate record for a given NCMD Card ID
  1. ; This function performs a lookup of the VIC REQUEST (#39.6) file
  1. ; for a given Card ID.
  1. ;
  1. ; Input:
  1. ; DGCID - NCMD Card ID
  1. ;
  1. ; Output:
  1. ; Function value - IEN of VIC REQUEST on success;
  1. ; 0 on failure
  1. ;
  1. Q:$G(DGCID)']"" 0
  1. Q +$O(^DGQE(39.6,"B",DGCID,""))
  1. ;
  1. ;
  1. FINDLST(DGDFN) ;locate the IEN of the last request for a given patient
  1. ;
  1. ; Input:
  1. ; DGDFN - pointer to patient in PATIENT (#2) file
  1. ;
  1. ; Output:
  1. ; Function value - IEN of VIC REQUEST (#39.6) file on success,
  1. ; 0 on failure
  1. ;
  1. N DGDAT
  1. ;
  1. S DGDFN=+$G(DGDFN)
  1. S DGDAT=+$O(^DGQE(39.6,"APDAT",DGDFN,""),-1)
  1. Q +$O(^DGQE(39.6,"APDAT",DGDFN,DGDAT,0))
  1. ;
  1. ;
  1. GETREQ(DGIEN,DGREQ) ;retrieve a single record
  1. ; This function retrieves all fields belonging to a single record
  1. ; in the VIC REQUEST (#39.6) file for a given IEN. The field data
  1. ; is placed in an array format.
  1. ;
  1. ; Input:
  1. ; DGIEN - VIC REQUEST (#39.6) file record number
  1. ;
  1. ; Output:
  1. ; Function value - 1 on success, 0 on failure
  1. ; DGREQ - array of field data
  1. ; Array subscripts are:
  1. ; "DFN" - pointer to patient in PATIENT (#2) file
  1. ; "CARDID" - NCMD Card ID
  1. ; "NAME" - patient name
  1. ; "CPRSTAT" - card print release status
  1. ; "REQDATE" - VIC Request Date in internal format
  1. ;
  1. N DGERR ;FM result error message
  1. N DGFIL ;FM file number
  1. N DGFLD ;FM result field array
  1. N DGIENS ;FM IENS value
  1. N DGRSLT ;Function value
  1. ;
  1. S DGRSLT=0
  1. S DGFIL=39.6
  1. ;
  1. I $G(DGIEN),$D(^DGQE(DGFIL,DGIEN)) D
  1. . S DGIENS=DGIEN_","
  1. . D GETS^DIQ(DGFIL,DGIENS,"*","IE","DGFLD","DGERR")
  1. . Q:$D(DGERR)
  1. . S DGREQ("CARDID")=$G(DGFLD(DGFIL,DGIENS,.01,"I"))
  1. . S DGREQ("DFN")=$G(DGFLD(DGFIL,DGIENS,.02,"I"))
  1. . S DGREQ("NAME")=$G(DGFLD(DGFIL,DGIENS,.02,"E"))
  1. . S DGREQ("CPRSTAT")=$G(DGFLD(DGFIL,DGIENS,.03,"I"))
  1. . S DGREQ("REQDT")=$G(DGFLD(DGFIL,DGIENS,.04,"I"))
  1. . S DGRSLT=1 ;success
  1. ;
  1. Q DGRSLT
  1. ;
  1. ;
  1. STOCID(DGCID,DGDFN,DGSTAT) ;store the NCMD-assigned Card ID
  1. ; This procedure creates a record in the VIC REQUEST (#39.6) file.
  1. ;
  1. ; Input:
  1. ; DGCID - Card ID [format: lastname_"-"_SSN_"-"_number of requests]
  1. ; DGDFN - pointer to patient in PATIENT(#2) file
  1. ; DGSTAT - Card Print Release Status
  1. ;
  1. ; Output:
  1. ; none
  1. ;
  1. N DGERR
  1. N DGFDA
  1. N DGFIL
  1. N DGIEN
  1. N DGIENS
  1. ;
  1. S DGFIL=39.6
  1. ;
  1. ;validate input params
  1. Q:+$G(DGDFN)'>0
  1. Q:'$D(^DPT(DGDFN,0))
  1. Q:$G(DGCID)']""
  1. Q:$$EXTERNAL^DILFD(DGFIL,.03,"F",$G(DGSTAT),"")']""
  1. ;
  1. S DGIEN=$$FINDCID(DGCID)
  1. S DGIENS=$S('DGIEN:"+1,",1:DGIEN_",")
  1. ;
  1. S DGFDA(DGFIL,DGIENS,.01)=DGCID
  1. S DGFDA(DGFIL,DGIENS,.02)=DGDFN
  1. S DGFDA(DGFIL,DGIENS,.03)=DGSTAT
  1. S DGFDA(DGFIL,DGIENS,.04)=$$NOW^XLFDT()
  1. D UPDATE^DIE("","DGFDA","","DGERR")
  1. ;
  1. Q
  1. ;
  1. ;
  1. STOSTAT(DGIEN,DGSTAT) ;update CARD PRINT RELEASE STATUS
  1. ; This procedure is used to update the CARD PRINT RELEASE STATUS(#.03)
  1. ; field of the VIC REQUEST (#39.6) file.
  1. ;
  1. ; Input:
  1. ; DGIEN - IEN of VIC REQUEST file record
  1. ; DGSTAT - card print release status
  1. ;
  1. ; Output:
  1. ; none
  1. ;
  1. N DGERR
  1. N DGFDA
  1. N DGFIL
  1. ;
  1. S DGFIL=39.6
  1. ;
  1. ;validate input parameters
  1. Q:'$G(DGIEN)
  1. Q:$G(DGSTAT)']""
  1. Q:$$EXTERNAL^DILFD(DGFIL,.03,"F",DGSTAT,"")']""
  1. ;
  1. S DGFDA(DGFIL,DGIEN_",",.03)=DGSTAT
  1. D FILE^DIE("","DGFDA","DGERR")
  1. Q
  1. ;
  1. ;
  1. DELREQ(DGIEN) ;delete a single VIC REQUEST record
  1. ;
  1. ; Input:
  1. ; DGIEN - IEN of record in VIC REQUEST (#39.6) file
  1. ;
  1. ; Output:
  1. ; Function value - 1 on success, 0 on failure
  1. ;
  1. N DGDT ;HL7 transmission date
  1. N DGERR
  1. N DGFDA
  1. N DGLIEN ;pointer to VIC HL7 TRANSMISSION LOG (#39.7) file
  1. N DGRSLT ;function value
  1. ;
  1. S DGRSLT=0
  1. I $G(DGIEN) D
  1. . S DGFDA(39.6,DGIEN_",",.01)="@"
  1. . D FILE^DIE("","DGFDA","DGERR")
  1. . Q:$D(DGERR)
  1. . ;
  1. . ;cleanup HL7 TRANSMISSION LOG
  1. . S DGDT=0
  1. . F S DGDT=$O(^DGQE(39.7,"ADATE",DGIEN,DGDT)) Q:'DGDT D Q:$D(DGERR)
  1. . . S DGLIEN=$O(^DGQE(39.7,"ADATE",DGIEN,DGDT,0))
  1. . . I DGLIEN,'$$DELXMIT^DGQEHLL(DGLIEN) S DGERR=1
  1. . Q:$D(DGERR)
  1. . S DGRSLT=1 ;success
  1. ;
  1. Q DGRSLT