[613] | 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 | ;
|
---|