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
|
---|