1 | ACKQPCE ;HCIOFO/AG - Quasar PCE Interface; August 1999.
|
---|
2 | ;;3.0;QUASAR;;Feb 11, 2000
|
---|
3 | ;;
|
---|
4 | ; this routine contains the entry points for sending a Quasar visit
|
---|
5 | ; to PCE, and deleting a Quasar visit from PCE.
|
---|
6 | ; the entry points are :-
|
---|
7 | ; SENDPCE(ACKVIEN,ACKPKG,ACKSRC,ACKDATE) ; send a visit
|
---|
8 | ; & KILLPCE(ACKVIEN) ; kill a visit from PCE
|
---|
9 | ;
|
---|
10 | SENDPCE(ACKVIEN,ACKPKG,ACKSRC) ; send a visit to pce
|
---|
11 | ; requires :-
|
---|
12 | ; ACKVIEN - Quasar visit ien (from 509850.6) (reqd)
|
---|
13 | ; ACKPKG - package number for Quasar from package file (9.4) (opt)
|
---|
14 | ; ACKSRC - source name (free text) (opt)
|
---|
15 | ; returns :-
|
---|
16 | ; 1 - visit processed ok (no errors)
|
---|
17 | ; 0 - visit not processed (errors found)
|
---|
18 | ; briefly, this routine does the following :-
|
---|
19 | ; (code for this function is in ^ACKQPCE1)
|
---|
20 | ; .lock the visit
|
---|
21 | ; .retrieve all the visit data
|
---|
22 | ; .if the visit already exists in PCE...
|
---|
23 | ; ..remove all workload from the PCE visit
|
---|
24 | ; ..if workload not removed ok...
|
---|
25 | ; ...record error on Qsr Visit file
|
---|
26 | ; ...unlock visit
|
---|
27 | ; ...end processing - return 0
|
---|
28 | ; .create temp file containing visit data in format reqd by
|
---|
29 | ; PCE api DATA2PCE^PXAPI
|
---|
30 | ; .call the PCE api to update the PCE Visit file
|
---|
31 | ; .if PCE api returned an error...
|
---|
32 | ; ..record error on Qsr Visit file
|
---|
33 | ; ..unlock visit
|
---|
34 | ; ..end processing - return 0
|
---|
35 | ; .update visit fields
|
---|
36 | ; .unlock visit
|
---|
37 | ; .end processing - return 1
|
---|
38 | I +$G(ACKVIEN)=0 Q 0
|
---|
39 | I $G(ACKPKG)="" S ACKPKG=$$PKG
|
---|
40 | I $G(ACKSRC)="" S ACKSRC=$$SRC
|
---|
41 | Q $$SENDPCE^ACKQPCE1(ACKVIEN,ACKPKG,ACKSRC)
|
---|
42 | ;
|
---|
43 | KILLPCE(ACKVIEN) ; remove a Quasar Visit from PCE
|
---|
44 | ; requires:-
|
---|
45 | ; ACKVIEN - Quasar Visit ien (from 509850.6) (reqd)
|
---|
46 | ; returns:-
|
---|
47 | ; 0 - unable to process, error returned by PCE
|
---|
48 | ; 1 - visit deleted successfully
|
---|
49 | ; this routine does the following :-
|
---|
50 | ; .get the PCE ien for the visit
|
---|
51 | ; .if no PCE ien then exit (return 1)
|
---|
52 | ; .lock the visit
|
---|
53 | ; .call the PCE API DELVFILE^PXAPI to delete the visit
|
---|
54 | ; .if error returned by PCE...
|
---|
55 | ; ..record error on Qsr Visit file
|
---|
56 | ; ..file Last Edited in Qsr date (to create Exception entry)
|
---|
57 | ; ..end processing - return 0
|
---|
58 | ; .update visit fields
|
---|
59 | ; .unlock visit
|
---|
60 | ; .end processing - return 1
|
---|
61 | I +$G(ACKVIEN)=0 Q 0
|
---|
62 | Q $$KILLPCE^ACKQPCE3(ACKVIEN)
|
---|
63 | ;
|
---|
64 | PKG() ; determine Quasar package number
|
---|
65 | N ACKTGT
|
---|
66 | D FIND^DIC(9.4,"",.01,"X","QUASAR",1,"B","","","ACKTGT","")
|
---|
67 | Q +$G(ACKTGT("DILIST",2,1))
|
---|
68 | ;
|
---|
69 | SRC() ; return default source string for quasar/pce interface
|
---|
70 | Q "QUASAR"
|
---|
71 | ;
|
---|
72 | CLEAR(ACKVIEN) ; clear the PCE Error multiple for a Quasar visit
|
---|
73 | N ACKTGT,ACKI,ACKARR
|
---|
74 | ; get all the current sub file entries
|
---|
75 | D LIST^DIC(509850.65,","_ACKVIEN_",",.01,"","*","","","","","","ACKTGT","")
|
---|
76 | ; transfer them to an FDA format array for update
|
---|
77 | F ACKI=1:1 Q:'$D(ACKTGT("DILIST",2,ACKI)) D
|
---|
78 | . S ACKSUB=ACKTGT("DILIST",2,ACKI)
|
---|
79 | . S ACKARR(509850.65,ACKSUB_","_ACKVIEN_",",.01)="@"
|
---|
80 | ; now update the file
|
---|
81 | D FILE^DIE("","ACKARR","")
|
---|
82 | ; done
|
---|
83 | Q
|
---|
84 | ;
|
---|
85 | FILERSN(ACKVIEN,ACKRSN) ; file PCE Errors on Quasar visit file 509850.6
|
---|
86 | ; requires :- ACKVIEN - quasar visit number
|
---|
87 | ; ACKRSN - array containing the errors
|
---|
88 | N ACKI,ACKARR
|
---|
89 | F ACKI=1:1:ACKRSN D
|
---|
90 | . S ACKARR(509850.65,"+"_ACKI_","_ACKVIEN_",",.01)=ACKI
|
---|
91 | . S ACKARR(509850.65,"+"_ACKI_","_ACKVIEN_",",.02)=$P(ACKRSN(ACKI,0),U,2)
|
---|
92 | . S ACKARR(509850.65,"+"_ACKI_","_ACKVIEN_",",.03)=$P(ACKRSN(ACKI,0),U,3)
|
---|
93 | . S ACKARR(509850.65,"+"_ACKI_","_ACKVIEN_",",.04)=$P(ACKRSN(ACKI,0),U,4)
|
---|
94 | . S ACKARR(509850.65,"+"_ACKI_","_ACKVIEN_",",1)=ACKRSN(ACKI,1)
|
---|
95 | D UPDATE^DIE("","ACKARR","","")
|
---|
96 | ; done
|
---|
97 | Q
|
---|
98 | ;
|
---|