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

VAQADS01.m

Go to the documentation of this file.
  1. VAQADS01 ;ALB/JRP - SYSTEM ADMINISTRATION;27-MAY-93
  1. ;;1.5;PATIENT DATA EXCHANGE;;NOV 17, 1993
  1. WORKDONE(WORKID,TRANS,DONEBY) ;LOG WORK DONE USING PDX
  1. ;INPUT : WORKID - Identifier for type of work done
  1. ; TRANS - Transaction work was done with (pointer)
  1. ; DONEBY - Person that did the work (pointer)
  1. ; (if NULL, assumes PDX Server)
  1. ;OUTPUT : 0 - Work was successfully logged or reported
  1. ; -1^Error_Text - Error
  1. ;
  1. ;CHECK INPUT
  1. Q:('$D(WORKID)) "-1^Did not pass work identifier"
  1. Q:('$D(TRANS)) "-1^Did not pass transaction work was done with"
  1. Q:(('TRANS)!('$D(^VAT(394.61,TRANS)))) "-1^Did not pass a valid transaction"
  1. S DONEBY=+$G(DONEBY)
  1. ;DECLARE VARIABLES
  1. N TMP,IFN,NAME,SSN,PID,SITE,DOMAIN,SEGMENT
  1. N DATETIME,PATIENT,DIC,X,DD,DO,Y
  1. S TMP="^NEW^RJCT^RLSE^RQST^SEND^SNSTVE^UNKN^UNQE^UPDTE^"
  1. Q:(TMP'[("^"_WORKID_"^")) "-1^Did not pass a valid word identifier"
  1. S DATETIME=$$NOW^VAQUTL99(1,0)
  1. Q:($P(DATETIME,"^",1)="-1") "-1^Could not create entry in work-load file"
  1. ;CHANGE DUZ INTO A VALID NAME (USE NULL FOR PDX SERVER)
  1. S:(DONEBY=.5) DONEBY=0
  1. S DONEBY=$P($G(^VA(200,DONEBY,0)),"^",1)
  1. S:((DONEBY="")!(DONEBY="POSTMASTER")) DONEBY=""
  1. ;GET PATIENT INFORMATION
  1. S PATIENT=+$P($G(^VAT(394.61,TRANS,0)),"^",3)
  1. S:('$D(^DPT(PATIENT))) PATIENT=0
  1. S TMP=$G(^VAT(394.61,TRANS,"QRY"))
  1. S NAME=$P(TMP,"^",1)
  1. S SSN=$P(TMP,"^",2)
  1. S PID=$P(TMP,"^",4)
  1. ;DETERMINE REMOTE SITE & DOMAIN
  1. S (SITE,DOMAIN)=""
  1. I ((WORKID="RJCT")!(WORKID="RLSE")!(WORKID="SEND")!(WORKID="UNKN")!(WORKID="UNQE")) D
  1. .S TMP=$G(^VAT(394.61,TRANS,"RQST2"))
  1. .S SITE=$P(TMP,"^",1)
  1. .S DOMAIN=$P(TMP,"^",2)
  1. I ((WORKID="NEW")!(WORKID="RQST")!(WORKID="UPDTE")) D
  1. .S TMP=$G(^VAT(394.61,TRANS,"ATHR2"))
  1. .S SITE=$P(TMP,"^",1)
  1. .S DOMAIN=$P(TMP,"^",2)
  1. I (WORKID="SNSTVE") D
  1. .S TMP=$G(^VAT(394.61,TRANS,"ATHR2"))
  1. .S SITE=$P(TMP,"^",1)
  1. .S DOMAIN=$P(TMP,"^",2)
  1. ;CREATE ENTRY IN WORK-LOAD FILE
  1. S DIC="^VAT(394.87,"
  1. S X=DATETIME
  1. S DIC("DR")=""
  1. S DIC(0)="L"
  1. D FILE^DICN
  1. S IFN=+Y
  1. Q:(IFN<0) "-1^Unable to create entry in work-load file"
  1. ;PUT IN KNOWN INFORMATION
  1. S Y=$$FILEINFO^VAQFILE(394.87,IFN,.02,DONEBY)
  1. S Y=$$FILEINFO^VAQFILE(394.87,IFN,.03,WORKID)
  1. S:(PATIENT) Y=$$FILEINFO^VAQFILE(394.87,IFN,10,PATIENT)
  1. S Y=$$FILEINFO^VAQFILE(394.87,IFN,11,NAME)
  1. S Y=$$FILEINFO^VAQFILE(394.87,IFN,12,SSN)
  1. S Y=$$FILEINFO^VAQFILE(394.87,IFN,13,PID)
  1. S Y=$$FILEINFO^VAQFILE(394.87,IFN,20,SITE)
  1. S Y=$$FILEINFO^VAQFILE(394.87,IFN,21,DOMAIN)
  1. ;PUT IN SEGMENTS
  1. S TMP=0
  1. F S TMP=+$O(^VAT(394.61,TRANS,"SEG",TMP)) Q:('TMP) D
  1. .S X=+$G(^VAT(394.61,TRANS,"SEG",TMP,0))
  1. .Q:('X)
  1. .S SEGMENT=$P($G(^VAT(394.71,X,0)),"^",1)
  1. .Q:(SEGMENT="")
  1. .S X=$$FILEINFO^VAQFILE(394.87,IFN,30,SEGMENT,.01,SEGMENT)
  1. Q 0