| 1 | VAQPST21 ;ALB/JRP - POST INIT (FILE CONVERSION);11-JUN-93 | 
|---|
| 2 | ;;1.5;PATIENT DATA EXCHANGE;**1**;NOV 17, 1993 | 
|---|
| 3 | REQUEST(SITE,DOMAIN,OUTARR,DEBUG) ;CONVERT LOCAL REQUESTS | 
|---|
| 4 | ;INPUT  : SITE - Name of local site (used as requesting site) | 
|---|
| 5 | ;         DOMAIN - Domain of local site (used as requesting domain) | 
|---|
| 6 | ;         OUTARR - Where to store correlation of 1.0 request with it's | 
|---|
| 7 | ;                  entry in 394.61 (full global reference) | 
|---|
| 8 | ;         DEBUG - Turns on debug mode (info written to screen) | 
|---|
| 9 | ;           1 - Debug on | 
|---|
| 10 | ;           0 - Debug off (default) | 
|---|
| 11 | ;OUTPUT : X - Number of requests successfully converted | 
|---|
| 12 | ;        -1^Error_Text - Error (nothing converted) | 
|---|
| 13 | ;NOTES  : OUTARR will be in the format | 
|---|
| 14 | ;           OUTARR(X,Y)=Z | 
|---|
| 15 | ;             X = 1.0 request number | 
|---|
| 16 | ;             Y = 1.5 request number | 
|---|
| 17 | ;             Z = 1.5 IFN | 
|---|
| 18 | ; | 
|---|
| 19 | ;CHECK INPUT | 
|---|
| 20 | S SITE=$G(SITE) | 
|---|
| 21 | Q:(SITE="") "-1^Did not pass name of local site" | 
|---|
| 22 | S DOMAIN=$G(DOMAIN) | 
|---|
| 23 | Q:(DOMAIN="") "-1^Did not pass domain of local site" | 
|---|
| 24 | S OUTARR=$G(OUTARR) | 
|---|
| 25 | Q:(OUTARR="") "-1^Did not pass reference to output array" | 
|---|
| 26 | S DEBUG=+$G(DEBUG) | 
|---|
| 27 | N RQSTPTR,ACKPTR,TMP,NODE0,NODE1,PTR10,TRAN10,COUNT | 
|---|
| 28 | N REMTRAN,ERRCNT,RELEASE,PATPTR,NAME,SSN,DOB,PID,DATE | 
|---|
| 29 | N USER,REMOTE,PTR15,TRAN15,STATUS,RETURN | 
|---|
| 30 | ;DETERMIN CONSTANTS | 
|---|
| 31 | S RQSTPTR=+$O(^VAT(394.3,"B",10,"")) | 
|---|
| 32 | Q:('RQSTPTR) "-1^PDX STATUS file (#394.3) did not contain status # 10 (request)" | 
|---|
| 33 | S ACKPTR=+$O(^VAT(394.3,"B",19,"")) | 
|---|
| 34 | Q:('ACKPTR) "-1^PDX  STATUS file (#394.3) did not contain status # 19 (acknowledgement)" | 
|---|
| 35 | W:(DEBUG) !!!! | 
|---|
| 36 | W:(DEBUG) !,"******************************" | 
|---|
| 37 | W:(DEBUG) !,"*                            *" | 
|---|
| 38 | W:(DEBUG) !,"*  Local Request Conversion  *" | 
|---|
| 39 | W:(DEBUG) !,"*                            *" | 
|---|
| 40 | W:(DEBUG) !,"******************************" | 
|---|
| 41 | W:(DEBUG) !!,"Pointer Information" | 
|---|
| 42 | W:(DEBUG) !,"-------------------" | 
|---|
| 43 | W:(DEBUG) !,"Request Pointer: ",RQSTPTR | 
|---|
| 44 | W:(DEBUG) !,"Acknowledgement Pointer: ",ACKPTR | 
|---|
| 45 | ;FILE REQUESTS | 
|---|
| 46 | W:(DEBUG) !!,"Converting local requests",!,"  Time: ",$$NOW^VAQUTL99,! | 
|---|
| 47 | S COUNT=0 | 
|---|
| 48 | S ERRCNT=0 | 
|---|
| 49 | S PTR10=0 | 
|---|
| 50 | F  S PTR10=+$O(^VAT(394,"AD",RQSTPTR,PTR10)) Q:('PTR10)  D FILE K ^VAT(394,"AD",RQSTPTR,PTR10) | 
|---|
| 51 | S PTR10=0 | 
|---|
| 52 | F  S PTR10=+$O(^VAT(394,"AD",ACKPTR,PTR10)) Q:('PTR10)  D FILE K ^VAT(394,"AD",ACKPTR,PTR10) | 
|---|
| 53 | Q (COUNT-ERRCNT) | 
|---|
| 54 | ; | 
|---|
| 55 | FILE ;FILE REQUESTS | 
|---|
| 56 | ;INCREMENT COUNT | 
|---|
| 57 | S COUNT=COUNT+1 | 
|---|
| 58 | I (DEBUG) W:(('(COUNT#5))&(COUNT#100)) "." W:('(COUNT#100)) "#" | 
|---|
| 59 | ;GET INFO FROM 1.0 TRANSACTION | 
|---|
| 60 | I ('$D(^VAT(394,PTR10))) S ERRCNT=ERRCNT+1 Q | 
|---|
| 61 | S NODE0=$G(^VAT(394,PTR10,0)) | 
|---|
| 62 | S NODE1=$G(^VAT(394,PTR10,1)) | 
|---|
| 63 | S TRAN10=+$P(NODE0,"^",2) | 
|---|
| 64 | I ('TRAN10) S ERRCNT=ERRCNT+1 Q | 
|---|
| 65 | S TMP=+$P(NODE0,"^",12) | 
|---|
| 66 | I ((TMP'=RQSTPTR)&(TMP'=ACKPTR)) S ERRCNT=ERRCNT+1 Q | 
|---|
| 67 | S STATUS=$S((TMP=ACKPTR):"VAQ-RQACK",1:"VAQ-RQST") | 
|---|
| 68 | S PATPTR=$P(NODE0,"^",9) | 
|---|
| 69 | S NAME=$P(NODE0,"^",4) | 
|---|
| 70 | S DOB=$P(NODE0,"^",7) | 
|---|
| 71 | S SSN=$P(NODE0,"^",5) | 
|---|
| 72 | S PID=$S(SSN="":"",1:($E(SSN,1,3)_"-"_$E(SSN,4,5)_"-"_$E(SSN,6,10))) | 
|---|
| 73 | I (PATPTR="") S:(SSN'="") PATPTR=$O(^DPT("SSN",SSN,"")) | 
|---|
| 74 | S DATE=$P(NODE0,"^",1) | 
|---|
| 75 | S USER=$P(NODE0,"^",19) | 
|---|
| 76 | S REMOTE=$P(NODE0,"^",17) | 
|---|
| 77 | I (REMOTE) D | 
|---|
| 78 | .S TMP=+$O(^DIC(4,"D",REMOTE,"")) | 
|---|
| 79 | .Q:('TMP) | 
|---|
| 80 | .S REMOTE=$P($G(^DIC(4,TMP,0)),"^",1) | 
|---|
| 81 | .S:(REMOTE="") REMOTE=$P(NODE0,"^",17) | 
|---|
| 82 | S RELEASE="VAQ-RQST" | 
|---|
| 83 | S RETURN="" | 
|---|
| 84 | S REMTRAN="" | 
|---|
| 85 | ;GO TO CONTINUATION ROUTINE | 
|---|
| 86 | D CNVRT^VAQPST24 | 
|---|
| 87 | ;STORE CORRELATION | 
|---|
| 88 | Q:(('TRAN10)!('$G(TRAN15))) | 
|---|
| 89 | S @OUTARR@(TRAN10,TRAN15)=PTR15 | 
|---|
| 90 | Q | 
|---|