1 | VAQREQ01 ;ALB/JFP - PDX, REQUEST PATIENT DATA, STATUS SCREEN;01MAR93
|
---|
2 | ;;1.5;PATIENT DATA EXCHANGE;;NOV 17, 1993
|
---|
3 | EP ; -- Main entry point for the list processor
|
---|
4 | K XQORS,VALMEVL
|
---|
5 | D EN^VALM("VAQ STATUS PDX1")
|
---|
6 | QUIT
|
---|
7 | ;
|
---|
8 | INIT ; -- Builds array of PDX transactions for the patient entered (SSN) or name
|
---|
9 | K ^TMP("VAQR1",$J),^TMP("VAQIDX",$J)
|
---|
10 | S TRDE="",(VAQECNT,VALMCNT)=0
|
---|
11 | I (VAQISSN="")&(VAQNM="") D QUIT
|
---|
12 | .S TRNO=0,X=$$SETSTR^VALM1(" ","",1,79) D TMP
|
---|
13 | .S X=$$SETSTR^VALM1(" ** Insufficient Information for Patient Look-up...","",1,80) D TMP
|
---|
14 | F S TRDE=$O(^VAT(394.61,$S(VAQISSN'="":"SSN",1:"NAME"),$S(VAQISSN'="":VAQISSN,1:VAQNM),TRDE)) Q:TRDE="" D SETD
|
---|
15 | I VAQECNT=0 D
|
---|
16 | .S TRNO=0,X=$$SETSTR^VALM1(" ","",1,79) D TMP
|
---|
17 | .S X=$$SETSTR^VALM1(" ** No PDX transactions found for this patient... ","",1,80) D TMP
|
---|
18 | QUIT
|
---|
19 | ;
|
---|
20 | SETD ; -- Set data for display in list processor
|
---|
21 | F ND=0,"RQST1","RQST2","ATHR1","ATHR2" S NODE(ND)=$G(^VAT(394.61,TRDE,ND))
|
---|
22 | ; -- Filters out transactions marked as purged OR excides life cap
|
---|
23 | S VAQFLAG=$$EXPTRN^VAQUTL97(TRDE) ; -- naked set at SETD+1
|
---|
24 | Q:VAQFLAG=1
|
---|
25 | ;
|
---|
26 | S TRNO=$P(NODE(0),U,1)
|
---|
27 | S STDE=$P(NODE(0),U,2)
|
---|
28 | S STATUS=$S(STDE'="":$P($G(^VAT(394.85,STDE,0)),U,2),1:" ")
|
---|
29 | S VAQTDTE=$P(NODE("ATHR1"),U,1) ; -- response
|
---|
30 | I VAQTDTE'="" S Y=VAQTDTE X ^DD("DD") S DATETIME=Y_" (Rs)"
|
---|
31 | I VAQTDTE="" S (Y,VAQTDTE)=$P(NODE("RQST1"),U,1) X ^DD("DD") S DATETIME=Y_" (Rq)"
|
---|
32 | ;
|
---|
33 | S DOMKEY=$$DOMKEY^VAQUTL94(STDE)
|
---|
34 | S:DOMKEY=-1 DOMAIN="Error extracting domain"
|
---|
35 | S:DOMKEY="R" DOMAIN=$P(NODE("RQST2"),U,1)
|
---|
36 | S:DOMKEY="A" DOMAIN=$P(NODE("ATHR2"),U,1)
|
---|
37 | S VAQECNT=VAQECNT+1 W:(VAQECNT#10)=0 "."
|
---|
38 | D:$D(^VAT(394.61,TRDE,"SEG",0)) SEG^VAQEXT06 ; -- gather segments
|
---|
39 | ;
|
---|
40 | S X=$$SETSTR^VALM1("Entry # : "_VAQECNT,"",1,30)
|
---|
41 | S X=$$SETSTR^VALM1("Trans # : "_TRNO,X,58,21) D TMP
|
---|
42 | S X=$$SETSTR^VALM1("Date/Time: "_DATETIME,"",1,80) D TMP
|
---|
43 | S X=$$SETSTR^VALM1("Domain : "_DOMAIN,"",1,80) D TMP
|
---|
44 | S X=$$SETSTR^VALM1("Status : "_STATUS,"",1,80) D TMP
|
---|
45 | F K=0:0 S K=$O(SEGMENT($J,K)) Q:K="" D
|
---|
46 | .S SEGMENT=SEGMENT($J,K)
|
---|
47 | .I K=1 S X=$$SETSTR^VALM1("Segments : "_SEGMENT,"",1,80) D TMP
|
---|
48 | .I K'=1 S X=$$SETSTR^VALM1(" : "_SEGMENT,"",1,80) D TMP
|
---|
49 | S X=$$SETSTR^VALM1(" ","",1,80) D TMP ; -- null line
|
---|
50 | QUIT
|
---|
51 | ;
|
---|
52 | TMP ; -- Set the array used by list processor
|
---|
53 | S VALMCNT=VALMCNT+1
|
---|
54 | S ^TMP("VAQR1",$J,VALMCNT,0)=$E(X,1,79)
|
---|
55 | S ^TMP("VAQR1",$J,"IDX",VALMCNT,VAQECNT)=""
|
---|
56 | S ^TMP("VAQIDX",$J,VAQECNT)=VALMCNT_"^"_TRNO
|
---|
57 | Q
|
---|
58 | ;
|
---|
59 | HD ; -- Make header line for list processor
|
---|
60 | S SP50=$J("",50)
|
---|
61 | S VALMHDR(1)="Patient : "_$E(VAQNM_SP50,1,38)_"Type: "_VAQEELG
|
---|
62 | S VALMHDR(2)="Patient SSN: "_$E(VAQESSN_SP50,1,39)_"DOB: "_VAQEDOB
|
---|
63 | QUIT
|
---|
64 | ;
|
---|
65 | DIS ; -- Display PDX data
|
---|
66 | N VALMY,SDI,SDAT,VAQRSLT,VAQUNSOL,VAQTRN,VAQBCK
|
---|
67 | D STATPTR^VAQUTL95
|
---|
68 | S VAQBCK=1
|
---|
69 | D EN^VALM2($G(XQORNOD(0)),"S")
|
---|
70 | Q:'$D(VALMY)
|
---|
71 | S SDI=""
|
---|
72 | S SDI=$O(VALMY(SDI)) Q:SDI=""
|
---|
73 | S SDAT=$G(^TMP("VAQIDX",$J,SDI))
|
---|
74 | S VAQTRN=$P(SDAT,U,2),DFN=""
|
---|
75 | S (VAQDFN,DFN)=$O(^VAT(394.61,"B",VAQTRN,DFN))
|
---|
76 | I $P($G(^VAT(394.61,DFN,0)),U,4)=1 D WORKLD^VAQDIS11
|
---|
77 | I ($P($G(^VAT(394.61,DFN,0)),U,2)'=VAQRSLT)&($P($G(^VAT(394.61,DFN,0)),U,2)'=VAQUNSOL) D QUIT
|
---|
78 | .W !," NO Results for transaction selected"
|
---|
79 | .D PAUSE^VAQUTL95
|
---|
80 | .S VALMBCK="R"
|
---|
81 | D EP^VAQDIS15 ; -- Display segments
|
---|
82 | I VAQBCK=1 K VALMBCK QUIT
|
---|
83 | D INIT
|
---|
84 | S VALMBCK="R"
|
---|
85 | QUIT
|
---|
86 | ;
|
---|
87 | EXIT ; -- Note: The list processor cleans up its own variables.
|
---|
88 | ; All other variables cleaned up here.
|
---|
89 | ;
|
---|
90 | K ^TMP("VAQR1",$J),^TMP("VAQIDX",$J)
|
---|
91 | K DIC,DIR,NODE,DOMAIN,SEGMENT,SEGMENT($J)
|
---|
92 | K TRDE,TRNO,ND,STDE,STATUS,DATETIME,SEGDE,SEG,SP50,VAQECNT,X,K,J
|
---|
93 | K VAQFLAG,VAQTDTE,DOMKEY
|
---|
94 | Q
|
---|
95 | ;
|
---|
96 | END ; -- End of code
|
---|
97 | QUIT
|
---|