| 1 | VAQADM21 ;ALB/JRP - MESSAGE ADMINISTRATION;20-MAY-93 | 
|---|
| 2 | ;;1.5;PATIENT DATA EXCHANGE;;NOV 17, 1993 | 
|---|
| 3 | START ;START RESPONSE TIME MONITORING (TIME TO FILE A SINGLE MESSAGE) | 
|---|
| 4 | I ($D(XRTL)) D T0^%ZOSV | 
|---|
| 5 | Q | 
|---|
| 6 | ; | 
|---|
| 7 | STOP ;STOP RESPONSE TIME MONITORING | 
|---|
| 8 | I ($D(XRT0)) S XRTN=$T(+0) D T1^%ZOSV K XRTN,XRT0 | 
|---|
| 9 | Q | 
|---|
| 10 | ; | 
|---|
| 11 | ACTIONS ;ACTIONS FOR PDX SERVER (CONTINUATION FOR VAQADM2) | 
|---|
| 12 | ;  DECLARATIONS DONE IN SERVER^VAQADM2 | 
|---|
| 13 | S MESSAGE="" | 
|---|
| 14 | F  S MESSAGE=$O(@PARSE@(MESSAGE)) Q:(MESSAGE="")  D START D  D STOP | 
|---|
| 15 | .S TRANS="" | 
|---|
| 16 | .S STATUS="" | 
|---|
| 17 | .S TYPE="" | 
|---|
| 18 | .;FILE HEADER BLOCK | 
|---|
| 19 | .S XMER=$$HEADER^VAQFIL10(MESSAGE,PARSE) | 
|---|
| 20 | .I ($P(XMER,"^",1)="-1") S $P(XMER,"^",1)="header" D ERROR Q | 
|---|
| 21 | .S TRANS=+XMER | 
|---|
| 22 | .S XMER=$$STATYPE^VAQFIL11(MESSAGE,PARSE) | 
|---|
| 23 | .I ($P(XMER,"^",1)="-1") S $P(XMER,"^",1)="header" D ERROR Q | 
|---|
| 24 | .S STATUS=$P(XMER,"^",1) | 
|---|
| 25 | .S TYPE=$P(XMER,"^",2) | 
|---|
| 26 | .;FILE DOMAIN BLOCK | 
|---|
| 27 | .S XMER=$$DOMAIN^VAQFIL12(MESSAGE,PARSE,TRANS) | 
|---|
| 28 | .I (XMER) S $P(XMER,"^",1)="domain" D ERROR Q | 
|---|
| 29 | .;DONE IF ACK | 
|---|
| 30 | .I (TYPE="ACK") D  Q | 
|---|
| 31 | ..;FILE STATUS | 
|---|
| 32 | ..S TMP=$$FILEINFO^VAQFILE(394.61,TRANS,.02,STATUS) | 
|---|
| 33 | ..;RESET PURGE FLAGE | 
|---|
| 34 | ..S TMP=$$FILEINFO^VAQFILE(394.61,TRANS,90,"NO") | 
|---|
| 35 | .;DONE IF RETRANSMIT | 
|---|
| 36 | .I (TYPE="RET") D  Q | 
|---|
| 37 | ..;FILE STATUS | 
|---|
| 38 | ..S TMP=$$FILEINFO^VAQFILE(394.61,TRANS,.02,STATUS) | 
|---|
| 39 | ..;RESET PURGE FLAGE | 
|---|
| 40 | ..S TMP=$$FILEINFO^VAQFILE(394.61,TRANS,90,"NO") | 
|---|
| 41 | ..;QUEUE TRANSMISSION | 
|---|
| 42 | ..K @XMIT | 
|---|
| 43 | ..S @XMIT@(TRANS)="" | 
|---|
| 44 | ..S XMER=$$GENTASK^VAQADM5(XMIT) S:(XMER>0) XMER=0 | 
|---|
| 45 | ..K @XMIT | 
|---|
| 46 | ..I (XMER) D | 
|---|
| 47 | ...S @ERROR@(MESSAGE,1)="Unable to queue retransmission  (IFN: "_TRANS_")" | 
|---|
| 48 | ...S @ERROR@(MESSAGE,2)=$P(XMER,"^",2) | 
|---|
| 49 | .;FILE USER BLOCK | 
|---|
| 50 | .S XMER=$$USER^VAQFIL13(MESSAGE,PARSE,TRANS) | 
|---|
| 51 | .I (XMER) S $P(XMER,"^",1)="user" D ERROR Q | 
|---|
| 52 | .;FILE LOCAL FACILITY NAME FOR REQUESTS & UNSOLICITED PDXS RECEIVED | 
|---|
| 53 | .I (TYPE="REQ") S TMP=$$FILEINFO^VAQFILE(394.61,TRANS,60,LOCSITE) | 
|---|
| 54 | .I (TYPE="UNS") S TMP=$$FILEINFO^VAQFILE(394.61,TRANS,30,LOCSITE) | 
|---|
| 55 | .;FILE PATIENT BLOCK | 
|---|
| 56 | .S XMER=$$PATIENT^VAQFIL15(MESSAGE,PARSE,TRANS) | 
|---|
| 57 | .I (XMER) S $P(XMER,"^",1)="patient" D ERROR Q | 
|---|
| 58 | .;FILE SEGMENT BLOCK | 
|---|
| 59 | .S XMER=$$SEGMENT^VAQFIL16(MESSAGE,PARSE,TRANS) | 
|---|
| 60 | .I (XMER) S $P(XMER,"^",1)="segment" D ERROR Q | 
|---|
| 61 | .;DONE IF REQUEST | 
|---|
| 62 | .I (TYPE="REQ") D  Q | 
|---|
| 63 | ..S XMER=$$AUTO^VAQADM22(TRANS) | 
|---|
| 64 | ..I (XMER) D | 
|---|
| 65 | ...S @ERROR@(MESSAGE,1)="Unable to complete automatic processing" | 
|---|
| 66 | ...S @ERROR@(MESSAGE,2)=$P(XMER,"^",2) | 
|---|
| 67 | .;FILE COMMENT BLOCK | 
|---|
| 68 | .S XMER=$$COMMENT^VAQFIL14(MESSAGE,PARSE,TRANS) | 
|---|
| 69 | .I (XMER) S $P(XMER,"^",1)="comment" D ERROR Q | 
|---|
| 70 | .;FILE ALL DATA BLOCKS | 
|---|
| 71 | .S XMER=$$DATA^VAQFIL18(MESSAGE,PARSE,TRANS) | 
|---|
| 72 | .I (XMER) S $P(XMER,"^",1)="data" D ERROR Q | 
|---|
| 73 | .;FILE ALL DISPLAY BLOCKS | 
|---|
| 74 | .S XMER=$$DISPLAY^VAQFIL17(MESSAGE,PARSE,TRANS) | 
|---|
| 75 | .I (XMER) S $P(XMER,"^",1)="display" D ERROR Q | 
|---|
| 76 | .;SEND RESULTS RECEIVED BULLETIN | 
|---|
| 77 | .I (TYPE="RES") D  Q | 
|---|
| 78 | ..;FILE STATUS | 
|---|
| 79 | ..S TMP=$$FILEINFO^VAQFILE(394.61,TRANS,.02,STATUS) | 
|---|
| 80 | ..;RESET PURGE FLAGE | 
|---|
| 81 | ..S TMP=$$FILEINFO^VAQFILE(394.61,TRANS,90,"NO") | 
|---|
| 82 | ..;SEND BULLETIN | 
|---|
| 83 | ..S XMER=$$RESULTS^VAQBUL03(TRANS) | 
|---|
| 84 | ..I (XMER) D | 
|---|
| 85 | ...S @ERROR@(MESSAGE,1)="Unable to send results received bulletin" | 
|---|
| 86 | ...S @ERROR@(MESSAGE,2)=$P(XMER,"^",2) | 
|---|
| 87 | ...S @ERROR@(MESSAGE,3)="Was able to file transaction (IFN:"_TRANS_")" | 
|---|
| 88 | .;COMPLETE UNSOLICITED | 
|---|
| 89 | .I (TYPE="UNS") D  Q | 
|---|
| 90 | ..;FILE STATUS | 
|---|
| 91 | ..S TMP=$$FILEINFO^VAQFILE(394.61,TRANS,.02,STATUS) | 
|---|
| 92 | ..;RESET PURGE FLAGE | 
|---|
| 93 | ..S TMP=$$FILEINFO^VAQFILE(394.61,TRANS,90,"NO") | 
|---|
| 94 | ..;SEND BULLETIN | 
|---|
| 95 | ..S XMER=$$UNSOL^VAQBUL06(TRANS) | 
|---|
| 96 | ..I (XMER) D | 
|---|
| 97 | ...S @ERROR@(MESSAGE,1)="Unable to send Unsolicited PDX received bulletin" | 
|---|
| 98 | ...S @ERROR@(MESSAGE,2)=$P(XMER,"^",2) | 
|---|
| 99 | ..;QUEUE ACK | 
|---|
| 100 | ..S XMER=$$FILEINFO^VAQFILE(394.61,TRANS,.05,"VAQ-UNACK") | 
|---|
| 101 | ..I (XMER) D | 
|---|
| 102 | ...S @ERROR@(MESSAGE,5)="Unable to acknowledge receipt of Unsolicited PDX" | 
|---|
| 103 | ...S @ERROR@(MESSAGE,6)=$P(XMER,"^",2) | 
|---|
| 104 | ..K @XMIT | 
|---|
| 105 | ..S @XMIT@(TRANS)="" | 
|---|
| 106 | ..I (('XMER)&(VERSION'=1)) S XMER=$$GENTASK^VAQADM5(XMIT) S:(XMER>0) XMER=0 | 
|---|
| 107 | ..K @XMIT | 
|---|
| 108 | ..I (XMER) D | 
|---|
| 109 | ...S @ERROR@(MESSAGE,10)="Unable to queue acknowledgement for receipt of Unsolicited PDX" | 
|---|
| 110 | ...S @ERROR@(MESSAGE,11)=$P(XMER,"^",2) | 
|---|
| 111 | ..S:(+$O(@ERROR@(MESSAGE,""))) @ERROR@(MESSAGE,15)="Was able to file transaction (IFN:"_TRANS_")",XMER="-1^Error completing receipt of Unsolicited PDX" | 
|---|
| 112 | S XMER=0 | 
|---|
| 113 | Q | 
|---|
| 114 | ; | 
|---|
| 115 | ERROR ;MAKE ENTRY IN ERROR ARRAY | 
|---|
| 116 | S @ERROR@(MESSAGE,1)="Error occurred while filing "_$P(XMER,"^",1)_" block" | 
|---|
| 117 | S @ERROR@(MESSAGE,2)=$P(XMER,"^",2) | 
|---|
| 118 | S XMER=-1 | 
|---|
| 119 | ;TRANSACTION NOT CREATED | 
|---|
| 120 | I ('TRANS) S @ERROR@(MESSAGE,3)="(Transaction was not created)" Q | 
|---|
| 121 | ;DELETE TRANSACTION | 
|---|
| 122 | S TMP=$$DELTRAN^VAQFILE(TRANS) | 
|---|
| 123 | S @ERROR@(MESSAGE,3)="Transaction "_$S(TMP:"not ",1:"")_"deleted  (IFN: "_TRANS_")" | 
|---|
| 124 | Q | 
|---|