1 | ACKQPCE3 ;HCIOFO/AG - Quasar/PCE Interface; August 1999.
|
---|
2 | ;;3.0;QUASAR;;Feb 11, 2000
|
---|
3 | ;;
|
---|
4 | ;
|
---|
5 | KILLPCE(ACKVIEN) ; kill a visit from PCE
|
---|
6 | ; see KILLPCE^ACKQPCE for comments. this routine should not be
|
---|
7 | ; called directly, only from ^ACKQPCE (this routine assumes that
|
---|
8 | ; ACKVIEN exists).
|
---|
9 | N ACKDEAD,ACKLOCK,ACKPCE,ACKE,ACKARR,ACKMSG,ACKRSN
|
---|
10 | S ACKDEAD=1,ACKLOCK=0
|
---|
11 | ;
|
---|
12 | ; get the PCE VISIT IEN from the visit file
|
---|
13 | S ACKPCE=$$GET1^DIQ(509850.6,ACKVIEN_",",125,"I")
|
---|
14 | ;
|
---|
15 | ; if no PCE Visit Ien then nothing to do.
|
---|
16 | I 'ACKPCE G KILLPCEX
|
---|
17 | ;
|
---|
18 | ; lock the visit
|
---|
19 | L +^ACK(509850.6,ACKVIEN):0 I $T S ACKLOCK=1
|
---|
20 | ;
|
---|
21 | ; clear any existing PCE Errors for this visit
|
---|
22 | D CLEAR^ACKQPCE(ACKVIEN)
|
---|
23 | ;
|
---|
24 | ; call PCE to delete the visit
|
---|
25 | S ACKE=$$DELVFILE^PXAPI("ALL",ACKPCE,"","",0,0,"")
|
---|
26 | ;
|
---|
27 | ; if deletion not completed then record error and set flag
|
---|
28 | I ACKE'=1 D
|
---|
29 | . K ACKRSN S ACKRSN=0
|
---|
30 | . S ACKMSG="Unable to Delete PCE Visit (error code="_ACKE_")"
|
---|
31 | . D ADDRSN^ACKQPCE2("PCE VISIT",ACKPCE,"",ACKMSG,.ACKRSN)
|
---|
32 | . D FILERSN^ACKQPCE(ACKVIEN,.ACKRSN)
|
---|
33 | . ; file last edited in Quasar date to create exception entry
|
---|
34 | . K ACKARR D NOW^%DTC
|
---|
35 | . S ACKARR(509850.6,ACKVIEN_",",140)=%
|
---|
36 | . D FILE^DIE("","ACKARR","")
|
---|
37 | . S ACKDEAD=0
|
---|
38 | ;
|
---|
39 | ; if deleted ok then update fields and set flag
|
---|
40 | I ACKE=1 D
|
---|
41 | . K ACKARR D NOW^%DTC
|
---|
42 | . S ACKARR(509850.6,ACKVIEN_",",125)="@" ; remove PCE Visit ien
|
---|
43 | . S ACKARR(509850.6,ACKVIEN_",",135)=% ; last sent to pce
|
---|
44 | . D FILE^DIE("","ACKARR","")
|
---|
45 | . S ACKDEAD=1
|
---|
46 | ;
|
---|
47 | KILLPCEX ; exit point from KILLPCE
|
---|
48 | ;
|
---|
49 | ; if visit was locked then unlock it
|
---|
50 | I ACKLOCK L -^ACK(509850.6,ACKVIEN)
|
---|
51 | ;
|
---|
52 | ; return whether the PCe visit was killed
|
---|
53 | Q ACKDEAD
|
---|
54 | ;
|
---|