1 | PSULR3 ;BIR/PDW - LAB extract assemble recs. for mail messg. ;25 AUG 1998
|
---|
2 | ;;4.0;PHARMACY BENEFITS MANAGEMENT;;MARCH, 2005
|
---|
3 | EN ;EP
|
---|
4 | ;
|
---|
5 | ;
|
---|
6 | ; Samples of the XTMP records being used
|
---|
7 | ;
|
---|
8 | ;^XTMP("PSULR_541075670",541075670,"CODES","CV800",4) = CREATININE^mg/dL
|
---|
9 | ;^XTMP("PSULR_541075670",541075670,"EVENT",1) = IV^599^13^12345^ASPRIN^CV800
|
---|
10 | ;^XTMP("PSULR_541075670",541075670,"PATIENT",13,4) = CREATININE^mg/dL
|
---|
11 | ;^XTMP("PSULR_541075670",541075670,"PATIENT",13,4,7029388.859632) = 1.0^^^50
|
---|
12 | ;^XTMP("PSULR_541077558",541077558,"RECORDS",59,1) = ^59^^^^12345^^^^^^ASPRIN^^CREATININE^^^^1.0 mg/dL^^6/10/97^
|
---|
13 | ;^XTMP("PSULR_541077558",541077558,"SUMMARY",599,13,"CV800",4) = CREATININE^1.0 mg/dL^6/10/97^
|
---|
14 | ;
|
---|
15 | ; LOOP through the events and assemble records accordingly
|
---|
16 | K ^XTMP(PSULRSUB,"RECORDS")
|
---|
17 | K ^XTMP(PSULRSUB,"SUMMARY")
|
---|
18 | S PSUEV=0 F S PSUEV=$O(^XTMP(PSULRSUB,"EVENT",PSUEV)) Q:PSUEV'>0 S X=^(PSUEV) D
|
---|
19 | . ;W !,X
|
---|
20 | . S PSUPK=$P(X,U,1),PSUDIV=$P(X,U,2),DFN=$P(X,U,3)
|
---|
21 | . S PSUORD=$P(X,U,4),PSUDRGN=$P(X,U,5),PSUDRCD=$P(X,U,6)
|
---|
22 | . K PSUCD
|
---|
23 | . M PSUCD=^XTMP(PSULRSUB,"CODES",PSUDRCD)
|
---|
24 | . S PSUND=0 F S PSUND=$O(PSUCD(PSUND)) Q:PSUND'>0 D
|
---|
25 | .. S PSUDT=$O(^XTMP(PSULRSUB,"PATIENT",DFN,PSUND,0))
|
---|
26 | .. I 'PSUDT Q ; no test results found
|
---|
27 | .. K VA D PID^VADPT
|
---|
28 | .. S PSUX=$$RECORD()
|
---|
29 | .. K VA
|
---|
30 | .. S PSULC=$O(^XTMP(PSULRSUB,"RECORDS",PSUDIV,""),-1)+1
|
---|
31 | .. S ^XTMP(PSULRSUB,"RECORDS",PSUDIV,PSULC)=PSUX
|
---|
32 | ;
|
---|
33 | Q
|
---|
34 | ;
|
---|
35 | RECORD() ;EP Construct mailing record
|
---|
36 | ;3.2.11.42
|
---|
37 | K PSUR
|
---|
38 | S PSULRDT=9999999-PSUDT
|
---|
39 | S X=^XTMP(PSULRSUB,"PATIENT",DFN,PSUND,PSUDT)
|
---|
40 | S PSULRF=$S(X["^":$P(X,U,2),1:"") ; hi/low flag
|
---|
41 | S PSULRR=$S(X["^":$P(X,U),1:X) ; test result
|
---|
42 | S X=^XTMP(PSULRSUB,"PATIENT",DFN,PSUND)
|
---|
43 | S PSULRT=$P(X,U) ; Lab Test name stored
|
---|
44 | S PSULRU=$P(X,U,2) ; Units stored
|
---|
45 | K PSUR
|
---|
46 | S PSUR(2)=PSUDIV
|
---|
47 | S PSUR(3)=$TR(VA("PID"),"-","")
|
---|
48 | S X=$S(PSUPK="IV":4,PSUPK="UD":5,1:10)
|
---|
49 | S PSUR(X)=PSUORD
|
---|
50 | S PSUR(7)=PSUDRGN
|
---|
51 | S PSUR(8)=$P(PSULRT,U)
|
---|
52 | S PSUR(9)=PSULRR_" "_PSULRU
|
---|
53 | S PSUR(10)=PSULRF
|
---|
54 | S PSUR(11)=PSULRDT
|
---|
55 | S PSUR=""
|
---|
56 | S I=0 F S I=$O(PSUR(I)) Q:I'>0 S PSUR(I)=$TR(PSUR(I),"^","'")
|
---|
57 | S I=0 F S I=$O(PSUR(I)) Q:I'>0 S $P(PSUR,U,I)=PSUR(I)
|
---|
58 | S PSUR=PSUR_U
|
---|
59 | ; Store info for summary by patient
|
---|
60 | S PSUTEST=PSULRT_U_PSUR(9)_U_PSULRDT_U_PSULRF ; test^result unit^date^flag
|
---|
61 | S ^XTMP(PSULRSUB,"SUMMARY",PSUDIV,DFN,PSUDRCD,PSUND)=PSUTEST
|
---|
62 | Q PSUR
|
---|