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