| [613] | 1 | VAQREQ06 ;ALB/JFP - REQUEST PDX RECORD,TRANSMIT;01MAR93
 | 
|---|
 | 2 |  ;;1.5;PATIENT DATA EXCHANGE;**4,20,26,32**;NOV 17, 1993
 | 
|---|
 | 3 | EP ; -- Programmer entry point for sending PDX requests
 | 
|---|
 | 4 |  ; -- This code is used by both request and unsolicited request
 | 
|---|
 | 5 |  ;
 | 
|---|
 | 6 |  D:$D(XRTL) T0^%ZOSV ; -- Capacity start
 | 
|---|
 | 7 |  S VAQDOM="",(POP,DOMCNT)=0 W !!,"Working..."
 | 
|---|
 | 8 |  D PRELOAD
 | 
|---|
 | 9 |  F  S VAQDOM=$O(^TMP("VAQSEG",$J,VAQDOM))  Q:VAQDOM=""  D XMIT
 | 
|---|
 | 10 |  I POP K POP QUIT
 | 
|---|
 | 11 |  S VAQFLAG=1
 | 
|---|
 | 12 |  W !!,"Transactions filed "
 | 
|---|
 | 13 | TASK ; -- Load taskman variables and task off
 | 
|---|
 | 14 |  S ZTRTN="GENXMIT^VAQADM50"
 | 
|---|
 | 15 |  S ZTDESC=$S(VAQOPT="REQ":"PDX, REQUEST",VAQOPT="UNS":"PDX, UNSOLICITED",1:"PDX, GENERATE TRANSMISSION")
 | 
|---|
 | 16 |  S ZTDTH=$H,ZTIO=""
 | 
|---|
 | 17 |  S ZTSAVE("VAQTRN(")=""
 | 
|---|
 | 18 |  I ZTRTN'="" D ^%ZTLOAD
 | 
|---|
 | 19 |  I $D(ZTSK)  W "and queued "
 | 
|---|
 | 20 |  K ZTRTN,ZTDESC,ZTDTH,ZTIO,ZTSAVE,ZTSK
 | 
|---|
 | 21 |  K ^TMP("CMNT",$J),FACDA,NOTI,PARMNODE,DOMDA,X,Y,DOMCNT,LOAD
 | 
|---|
 | 22 |  S:$D(XRT0) XRTN=$T(+0) D:$D(XRT0) T1^%ZOSV ; -- Capacity stop
 | 
|---|
 | 23 |  QUIT
 | 
|---|
 | 24 |  ;
 | 
|---|
 | 25 | XMIT ; -- Makes an entry in the 'PDX TRANSACTION' file
 | 
|---|
 | 26 |  S Y=$$NEWTRAN^VAQFILE Q:Y<0
 | 
|---|
 | 27 |  S DOMCNT=DOMCNT+1 W:(DOMCNT#10)=0 "."
 | 
|---|
 | 28 |  S (VAQPR,DA)=+Y,VAQTRN=$P(Y,"^",2)
 | 
|---|
 | 29 |  S LOAD=$S(VAQOPT="REQ":"LDREQ",VAQOPT="UNS":"LDUNS",1:"LDREQ")
 | 
|---|
 | 30 |  D @LOAD
 | 
|---|
 | 31 |  D:$D(^TMP("VAQNOTI",$J)) MNOTI
 | 
|---|
 | 32 |  D:$D(^TMP("VAQSEG",$J)) MSEG
 | 
|---|
 | 33 |  I VAQOPT="UNS"&($D(^TMP("CMNT",$J))) D CMNT
 | 
|---|
 | 34 |  ; -- Load an array of newly entered transactions
 | 
|---|
 | 35 |  S VAQTRN(VAQPR)=""
 | 
|---|
 | 36 |  ; -- Updates workload file
 | 
|---|
 | 37 |  S X=$$WORKDONE^VAQADS01($S(VAQOPT="REQ":"RQST",VAQOPT="UNS":"SEND",1:""),VAQPR,$G(DUZ))
 | 
|---|
 | 38 |  Q
 | 
|---|
 | 39 |  ;
 | 
|---|
 | 40 | PRELOAD ; -- Loads the constant data for multiple domains
 | 
|---|
 | 41 |  S %DT="ST",X="NOW" D ^%DT S VAQRQDT=Y
 | 
|---|
 | 42 |  S VAQPID=""
 | 
|---|
 | 43 |  S VAQSENPT=""
 | 
|---|
 | 44 |  I VAQDFN>0 D
 | 
|---|
 | 45 |  .S DFN=+VAQDFN
 | 
|---|
 | 46 |  .D PID^VADPT6
 | 
|---|
 | 47 |  .S VAQPID=$P($G(VA("PID")),U,1)
 | 
|---|
 | 48 |  .K VA("PID"),VA("BID")
 | 
|---|
 | 49 |  .S VAQSENPT=$$GETSEN^VAQUTL97(DFN) ; --Sensitive patient
 | 
|---|
 | 50 |  .S:VAQSENPT<0 VAQSENPT=""
 | 
|---|
 | 51 |  ;
 | 
|---|
 | 52 |  S PARMNODE=$G(^VAT(394.81,1,0))
 | 
|---|
 | 53 |  S FACDA=$P(PARMNODE,U,1),DOMDA=$P(PARMNODE,U,2)
 | 
|---|
 | 54 |  S VAQRQSIT=$P($G(^DIC(4,FACDA,0)),U,1)
 | 
|---|
 | 55 |  S VAQRQADD=$P($G(^DIC(4.2,DOMDA,0)),U,1)
 | 
|---|
 | 56 |  ;
 | 
|---|
 | 57 |  S (VAQDZ,VAQDZN)=""
 | 
|---|
 | 58 |  I $G(DUZ)'="" D
 | 
|---|
 | 59 |  .S VAQDZN=$S($D(DUZ):$P(^VA(200,DUZ,0),U,1),1:"")
 | 
|---|
 | 60 |  .S VAQDZ=$S($D(DUZ):DUZ,1:"")
 | 
|---|
 | 61 |  QUIT
 | 
|---|
 | 62 |  ;
 | 
|---|
 | 63 | LDREQ ; -- Sets DR string and non-constant variables, LOAD FOR REQUEST
 | 
|---|
 | 64 |  S:'$D(VAQNOTI) VAQNOTI=0 ; -- UNS does not use notify logic
 | 
|---|
 | 65 |  S VAQAUSIT=$$GETINST^VAQUTL97(VAQDOM)
 | 
|---|
 | 66 |  S DR=".02///VAQ-RQST"
 | 
|---|
 | 67 |  S DR(1,394.61,.03)=".03////"_$S(+VAQDFN>0:+VAQDFN,1:"")
 | 
|---|
 | 68 |  S DR(1,394.61,.04)=".04///"_VAQSENPT
 | 
|---|
 | 69 |  S DR(1,394.61,.05)=".05///VAQ-RQST"
 | 
|---|
 | 70 |  S DR(1,394.61,10)="10///"_VAQNM
 | 
|---|
 | 71 |  S DR(1,394.61,11)="11///"_VAQISSN
 | 
|---|
 | 72 |  S DR(1,394.61,12)="12///"_VAQIDOB
 | 
|---|
 | 73 |  S DR(1,394.61,13)="13///"_VAQPID
 | 
|---|
 | 74 |  S DR(1,394.61,20)="20///"_VAQRQDT
 | 
|---|
 | 75 |  S DR(1,394.61,21)="21///"_VAQDZN
 | 
|---|
 | 76 |  S DR(1,394.61,30)="30///"_VAQRQSIT
 | 
|---|
 | 77 |  S DR(1,394.61,31)="31///"_VAQRQADD
 | 
|---|
 | 78 |  S DR(1,394.61,60)="60///"_VAQAUSIT
 | 
|---|
 | 79 |  S DR(1,394.61,61)="61///"_VAQDOM
 | 
|---|
 | 80 |  S DR(1,394.61,70)="70///"_VAQNOTI
 | 
|---|
 | 81 |  ;
 | 
|---|
 | 82 |  S DIE="^VAT(394.61,"
 | 
|---|
 | 83 |  D ^DIE K DIE,DR
 | 
|---|
 | 84 |  QUIT
 | 
|---|
 | 85 |  ;
 | 
|---|
 | 86 | LDUNS ; -- Sets DR string and non-constant variables, LOAD FOR UNSOLICITED
 | 
|---|
 | 87 |  S VAQAUSIT=$$GETINST^VAQUTL97(VAQDOM)
 | 
|---|
 | 88 |  S DR=".02///VAQ-TUNSL"
 | 
|---|
 | 89 |  S DR(1,394.61,.03)=".03////"_$S(+VAQDFN>0:+VAQDFN,1:"")
 | 
|---|
 | 90 |  S DR(1,394.61,.04)=".04///"_VAQSENPT
 | 
|---|
 | 91 |  S DR(1,394.61,.05)=".05///VAQ-UNSOL"
 | 
|---|
 | 92 |  S DR(1,394.61,10)="10///"_VAQNM
 | 
|---|
 | 93 |  S DR(1,394.61,11)="11///"_VAQISSN
 | 
|---|
 | 94 |  S DR(1,394.61,12)="12///"_VAQIDOB
 | 
|---|
 | 95 |  S DR(1,394.61,13)="13///"_VAQPID
 | 
|---|
 | 96 |  S DR(1,394.61,20)="20///"_VAQRQDT
 | 
|---|
 | 97 |  S DR(1,394.61,21)="21///"_VAQDZN
 | 
|---|
 | 98 |  S DR(1,394.61,50)="50///"_VAQRQDT
 | 
|---|
 | 99 |  S DR(1,394.61,51)="51///"_VAQDZN
 | 
|---|
 | 100 |  S DR(1,394.61,30)="60///"_VAQRQSIT
 | 
|---|
 | 101 |  S DR(1,394.61,31)="61///"_VAQRQADD
 | 
|---|
 | 102 |  S DR(1,394.61,60)="30///"_VAQAUSIT
 | 
|---|
 | 103 |  S DR(1,394.61,61)="31///"_VAQDOM
 | 
|---|
 | 104 |  ;
 | 
|---|
 | 105 |  S DIE="^VAT(394.61,"
 | 
|---|
 | 106 |  D ^DIE K DIE,DR
 | 
|---|
 | 107 |  QUIT
 | 
|---|
 | 108 | MNOTI ; -- Loads the notify muliple
 | 
|---|
 | 109 |  S DIE="^VAT(394.61,",DLAYGO=394.61,NOTI=""
 | 
|---|
 | 110 |  F  S NOTI=$O(^TMP("VAQNOTI",$J,NOTI))  Q:NOTI=""  D
 | 
|---|
 | 111 |  .S DR="71///"_NOTI
 | 
|---|
 | 112 |  .D ^DIE
 | 
|---|
 | 113 |  K DIE,DR,DLAYGO
 | 
|---|
 | 114 |  QUIT
 | 
|---|
 | 115 |  ;
 | 
|---|
 | 116 | MSEG ; -- Loads the data segment muliple
 | 
|---|
 | 117 |  S SEG=""
 | 
|---|
 | 118 |  F  S SEG=$O(^TMP("VAQSEG",$J,VAQDOM,SEG))  Q:(SEG="")  D
 | 
|---|
 | 119 |  .S SEGND=$G(^TMP("VAQSEG",$J,VAQDOM,SEG))
 | 
|---|
 | 120 |  .S VAQJUNK=$$FILESEG^VAQFILE2(394.61,VAQPR,80,$P(SEGND,"^",1),$P(SEGND,"^",3),$P(SEGND,"^",4))
 | 
|---|
 | 121 |  K VAQJUNK
 | 
|---|
 | 122 |  QUIT
 | 
|---|
 | 123 |  ;
 | 
|---|
 | 124 | CMNT ; -- Loads comment for unsolicited request (WORD PROCESSOR FIELD)
 | 
|---|
 | 125 |  S %X="^TMP(""CMNT"",$J,"
 | 
|---|
 | 126 |  S %Y="^VAT(394.61,"_DA_",""CMNT"","
 | 
|---|
 | 127 |  D %XY^%RCR
 | 
|---|
 | 128 |  K %X,%Y
 | 
|---|
 | 129 |  QUIT
 | 
|---|
 | 130 |  ;
 | 
|---|
 | 131 | END ; -- End of code
 | 
|---|
 | 132 |  ;QUIT
 | 
|---|