source: FOIAVistA/trunk/r/QUASAR-ACKQ/ACKQPCE.m@ 1742

Last change on this file since 1742 was 628, checked in by George Lilly, 15 years ago

initial load of FOIAVistA 6/30/08 version

File size: 3.4 KB
Line 
1ACKQPCE ;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 ;
10SENDPCE(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 ;
43KILLPCE(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 ;
64PKG() ; 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 ;
69SRC() ; return default source string for quasar/pce interface
70 Q "QUASAR"
71 ;
72CLEAR(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 ;
85FILERSN(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 ;
Note: See TracBrowser for help on using the repository browser.