[613] | 1 | VAQPUR11 ;ALB/JRP - PURGING;15JUL93
|
---|
| 2 | ;;1.5;PATIENT DATA EXCHANGE;;NOV 17, 1993
|
---|
| 3 | PRGCHK(POINTER,PRGDATE,SETPRGE) ;CHECK TO SEE IF TRANSACTION SHOULD BE PURGE
|
---|
| 4 | ;INPUT : POINTER - Pointer to transaction to check
|
---|
| 5 | ; PRGDATE - Date purging will be based on (FileMan format)
|
---|
| 6 | ; SETPRGE - Flag indicating if purge flag should be set
|
---|
| 7 | ; when required data is not present
|
---|
| 8 | ; If 0, don't set purge flag (default)
|
---|
| 9 | ; If 1, set purge flag
|
---|
| 10 | ;OUTPUT : 0 - Transaction does not require purging
|
---|
| 11 | ; 1 - Transaction does require purging
|
---|
| 12 | ; 2^0 - Required info for transaction was not present and
|
---|
| 13 | ; purge flag was not set
|
---|
| 14 | ; 2^1 - Required info for transaction was not present and
|
---|
| 15 | ; purge flag has been set
|
---|
| 16 | ; 2^-1 - Required info for transaction was not present and
|
---|
| 17 | ; purge flag could not be set
|
---|
| 18 | ; 3 - Transaction was already flaged for purging
|
---|
| 19 | ; -1 - Error determing if transaction should be purged
|
---|
| 20 | ;
|
---|
| 21 | ;CHECK INPUT
|
---|
| 22 | Q:('(+$G(POINTER))) -1
|
---|
| 23 | Q:('(+$G(PRGDATE))) -1
|
---|
| 24 | Q:('$D(^VAT(394.61,POINTER))) -1
|
---|
| 25 | S SETPRGE=+$G(SETPRGE)
|
---|
| 26 | ;DECLARE VARIABLES
|
---|
| 27 | N NUMBER,CURTYPE,RELTYPE,NAME,SSN,RQSTDATE
|
---|
| 28 | N ATHRDATE,SEGS,X1,X2,X,%Y,TMP,FLAG,RQSTOLD,ATHROLD
|
---|
| 29 | S FLAG=0
|
---|
| 30 | ;CHECK PURGE FLAG
|
---|
| 31 | Q:($D(^VAT(394.61,"PURGE",1,POINTER))) 3
|
---|
| 32 | ;GET REQUIRED INFORMATION
|
---|
| 33 | ;TRANSACTION NUMBER
|
---|
| 34 | S NUMBER=+$G(^VAT(394.61,POINTER,0))
|
---|
| 35 | ;CURRENT TYPE
|
---|
| 36 | S CURTYPE=""
|
---|
| 37 | S TMP=$$STATYPE^VAQCON1(POINTER,1)
|
---|
| 38 | S:($P(TMP,"^",1)'="-1") CURTYPE=$P(TMP,"^",2)
|
---|
| 39 | ;RELEASE TYPE
|
---|
| 40 | S RELTYPE=""
|
---|
| 41 | S TMP=$$STATYPE^VAQCON1(POINTER,0)
|
---|
| 42 | S:($P(TMP,"^",1)'="-1") RELTYPE=$P(TMP,"^",2)
|
---|
| 43 | ;PATIENT NAME & SSN
|
---|
| 44 | S TMP=$G(^VAT(394.61,POINTER,"QRY"))
|
---|
| 45 | S NAME=$P(TMP,"^",1)
|
---|
| 46 | S SSN=$P(TMP,"^",2)
|
---|
| 47 | ;REQUEST DATE
|
---|
| 48 | S RQSTDATE=+$P($G(^VAT(394.61,POINTER,"RQST1")),"^",1)
|
---|
| 49 | ;AUTHORIZE DATE
|
---|
| 50 | S ATHRDATE=+$P($G(^VAT(394.61,POINTER,"ATHR1")),"^",1)
|
---|
| 51 | ;SEGMENTS
|
---|
| 52 | S SEGS=+$O(^VAT(394.61,POINTER,"SEG",0))
|
---|
| 53 | ;CHECK REQUIRED INFO
|
---|
| 54 | S:('NUMBER) FLAG=1
|
---|
| 55 | S:((CURTYPE="")&(RELTYPE="")) FLAG=1
|
---|
| 56 | S:((NAME="")&(SSN="")) FLAG=1
|
---|
| 57 | S:(('ATHRDATE)&('RQSTDATE)) FLAG=1
|
---|
| 58 | I ('RQSTDATE) D
|
---|
| 59 | .S TMP="^REQ^ACK^RES^"
|
---|
| 60 | .S X="^"_CURTYPE_"^"
|
---|
| 61 | .S:(TMP[X) FLAG=1
|
---|
| 62 | I ('ATHRDATE) D
|
---|
| 63 | .S TMP="^UNS^RES^"
|
---|
| 64 | .S X="^"_CURTYPE_"^"
|
---|
| 65 | .S:(TMP[X) FLAG=1
|
---|
| 66 | S:('SEGS) FLAG=1
|
---|
| 67 | ;CHECK REQUEST & AUTHORIZE DATES AGAINST PURGE DATE
|
---|
| 68 | S X1=PRGDATE
|
---|
| 69 | S X2=RQSTDATE
|
---|
| 70 | D ^%DTC
|
---|
| 71 | S X=+$G(X)
|
---|
| 72 | S RQSTOLD=$S(((X=0)!(X>0)):1,1:0)
|
---|
| 73 | S X1=PRGDATE
|
---|
| 74 | S X2=ATHRDATE
|
---|
| 75 | D ^%DTC
|
---|
| 76 | S X=+$G(X)
|
---|
| 77 | S ATHROLD=$S(((X=0)!(X>0)):1,1:0)
|
---|
| 78 | ;CHECK FOR ERROR DURING MESSAGE RECEIPT (CONSIDERD REQUIRED INFO)
|
---|
| 79 | I (CURTYPE="REC") D
|
---|
| 80 | .;NO REQUEST DATE BUT AUTHORIZE DATE OLDER THAN PURGE DATE
|
---|
| 81 | .I (('RQSTDATE)&(ATHROLD)) S FLAG=1 Q
|
---|
| 82 | .;NO AUTHORIZE DATE BUT REQUEST DATE OLDER THAN PURGE DATE
|
---|
| 83 | .I (('ATHRDATE)&(RQSTOLD)) S FLAG=1 Q
|
---|
| 84 | ;REQUIRED INFORMATION WAS NOT ALL PRESENT
|
---|
| 85 | I (FLAG) D Q TMP
|
---|
| 86 | .;DON'T FLAG FOR PURGING
|
---|
| 87 | .I ('SETPRGE) S TMP="2^0" Q
|
---|
| 88 | .;FLAG FOR PURGING
|
---|
| 89 | .S TMP=+$$FILEINFO^VAQFILE(394.61,POINTER,90,"YES")
|
---|
| 90 | .S TMP="2^"_$S(('TMP):"1",1:"-1")
|
---|
| 91 | ;REQUEST & AUTHORIZE DATES BOTH OLDER THAN PURGE DATE
|
---|
| 92 | Q:((RQSTOLD)&(ATHROLD)) 1
|
---|
| 93 | ;DON'T PURGE
|
---|
| 94 | Q 0
|
---|