1 | IBDFRPC5 ;ALB/AAS - AICS Pass data to PCE, Broker Call ; 24-FEB-96
|
---|
2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;**3,38**;APR 24, 1997
|
---|
3 | ;
|
---|
4 | GETALL(RESULT,IBDATA) ; -- called by RPC and by write
|
---|
5 | ; -- get all encounter data
|
---|
6 | ; -- input Result (called by reference)
|
---|
7 | ; IBDATA (called by reference)
|
---|
8 | ; IBDATA("CLINIC") := pointer to hospital location file (44)
|
---|
9 | ; IBDATA("DFN") := pointer to Patient file (2)
|
---|
10 | ; IBDATA("APPT") := date/time of encounter in FM format
|
---|
11 | ; IBDATA("UNFORMAT") := (optional, default :=0) return piece
|
---|
12 | ; as displayable
|
---|
13 | ; -- output Results Array
|
---|
14 | ; A sequential array of all data found for encounters for
|
---|
15 | ; patient/clinic/appt
|
---|
16 | ; if ibdata(unformat) is false then data is preformatted
|
---|
17 | ; suitable for display to a crt.
|
---|
18 | ; if ibdata(unformat) is true then a record as follows:
|
---|
19 | ; P1 := data qualifier (ie primary or secondary)
|
---|
20 | ; P2 := type of data
|
---|
21 | ; p3 := Narrative or Description (Textual name)
|
---|
22 | ; P4 := value (code or date/time)
|
---|
23 | ; P5 := source of data (aics, pce, scheduling)
|
---|
24 | ; P6 := Quantity (cpt codes only)
|
---|
25 | ; The next 4 pieces only set if answered
|
---|
26 | ; P7 := sc (null, 1 or 0) encounter node only
|
---|
27 | ; P8 := ao (null, 1 or 0) encounter node only
|
---|
28 | ; P9 := ir (null, 1 or 0) encounter node only
|
---|
29 | ; P10 := ec (null, 1 or 0) encounter node only
|
---|
30 | ;
|
---|
31 | N CNT,IBDI,ENCTRS,L
|
---|
32 | S CNT=0,ENCTRS=""
|
---|
33 | D GETDATA(.RESULT,.IBDATA,.ENCTRS)
|
---|
34 | S L=" "
|
---|
35 | I +RESULT(0) S RESULT(0)="The following data was found: " D FINDALL^IBDFRPC6(.RESULT)
|
---|
36 | ;F IBDI="VST","PRV","POV","CPT","HF","PED","XAM","SK","IMM","TRT" D @(IBDI_"^IBDFRPC6")
|
---|
37 | GETALLQ Q
|
---|
38 | ;
|
---|
39 | GETDATA(RESULT,IBDATA,ENCTRS) ; -- return all data for an encounter date time
|
---|
40 | ;
|
---|
41 | N IBDJ,IBDY
|
---|
42 | K ^TMP("PXKENC",$J)
|
---|
43 | I +IBDATA("CLINIC")'=IBDATA("CLINIC"),IBDATA("CLINIC")'="" S IBDATA("CLINIC")=$O(^SC("B",IBDATA("CLINIC"),0))
|
---|
44 | S RESULT(0)="Nothing Processed, Perhaps an Error Occurred"
|
---|
45 | I $G(IBDATA("DFN"))<1!($G(IBDATA("APPT"))<1)!($G(IBDATA("CLINIC"))<1) S RESULT(0)="Insufficient Data Passed to find encounter data" G GETQ
|
---|
46 | ;
|
---|
47 | ; -- first get visit iens
|
---|
48 | S ENCTRS=$$GETENC^PXAPI(IBDATA("DFN"),IBDATA("APPT"),IBDATA("CLINIC"))
|
---|
49 | I ENCTRS=-1 S RESULT(0)="No encounter Data on file." G GETQ
|
---|
50 | I ENCTRS=-2 S RESULT(0)="Error in calling routine, file a NOIS" G GETQ
|
---|
51 | ;
|
---|
52 | ; -- then get all visit data
|
---|
53 | S RESULT(0)="Attempting to Retieve Data"
|
---|
54 | F IBDJ=1:1 S IBDY=$P(ENCTRS,"^",IBDJ) Q:IBDY="" D ENCEVENT^PXAPI(IBDY,1)
|
---|
55 | ;
|
---|
56 | S RESULT(0)="1"
|
---|
57 | GETQ Q
|
---|
58 | ;
|
---|
59 | WRITE ; -- called by DIR as executable help from IBDFDE
|
---|
60 | N RESULT,IBQUIT,I,CNT
|
---|
61 | W !,"Retrieving Encounter Data from PCE..."
|
---|
62 | D GETALL(.RESULT,.IBDF)
|
---|
63 | W !
|
---|
64 | S I="",IBQUIT=0,CNT=0
|
---|
65 | F S I=$O(RESULT(I)) Q:I="" S CNT=CNT+1 D:'(CNT#10) PAUSE^IBDFDE Q:IBQUIT W !,RESULT(I)
|
---|
66 | Q
|
---|
67 | ;
|
---|
68 | APPTLST(RESULT,IBDF) ; -- return past appointment list, called by rpc
|
---|
69 | N I,J,CNT,DFN,VASD,VAERR,VAROOT
|
---|
70 | S RESULT(0)="No Past Appointments Found^^"
|
---|
71 | K ^UTILITY("VASD",$J)
|
---|
72 | ;
|
---|
73 | S DFN=+$G(IBDF("DFN"))
|
---|
74 | S VASD("F")=$S($G(IBDF("F"))>2840000:IBDF("F"),1:DT-10000)
|
---|
75 | S VASD("T")=$S($G(IBDF("T"))>2840000:IBDF("T"),1:DT+.24)
|
---|
76 | S VASD("W")=$S($G(IBDF("W"))'="":IBDF("W"),1:"129")
|
---|
77 | ;
|
---|
78 | D SDA^VADPT
|
---|
79 | ;
|
---|
80 | I $O(^UTILITY("VASD",$J,"")) S CNT=0
|
---|
81 | S I="" F S I=$O(^UTILITY("VASD",$J,I),-1) Q:I="" S RESULT(CNT)=$G(^UTILITY("VASD",$J,I,"E"))_"^"_$G(^UTILITY("VASD",$J,I,"I")),CNT=CNT+1
|
---|
82 | ;
|
---|
83 | I VAERR=1 S RESULT(0)="Invalid Patient Identifier^^"
|
---|
84 | K ^UTILITY("VASD",$J)
|
---|
85 | Q
|
---|
86 | ;
|
---|
87 | TEST ;
|
---|
88 | K IBDF,ALAN
|
---|
89 | S IBDF("DFN")=7169761
|
---|
90 | S IBDF("CLINIC")=300
|
---|
91 | S IBDF("APPT")=2970902.0849
|
---|
92 | S IBDF("UNFORMAT")=1
|
---|
93 | D GETALL(.ALAN,.IBDF)
|
---|
94 | Q
|
---|
95 | TESTW ;
|
---|
96 | K IBDF
|
---|
97 | S IBDF("DFN")=7169761
|
---|
98 | S IBDF("CLINIC")=300
|
---|
99 | S IBDF("APPT")=2970902.0849
|
---|
100 | D WRITE
|
---|
101 | K IBDF
|
---|
102 | Q
|
---|
103 | ;
|
---|
104 | TESTA ;
|
---|
105 | K ALAN,IBDF
|
---|
106 | S IBDF("DFN")=7169761
|
---|
107 | D APPTLST(.ALAN,.IBDF)
|
---|
108 | Q
|
---|