ACKQUTL5 ;HCIOFO/BH-Quasar utilities routine ; 04/01/99 ;;3.0;QUASAR;**1,4,6,8**;Feb 11, 2000 ;Per VHA Directive 10-93-142, this routine SHOULD NOT be modified. SETREF(X,ACKVIEN,ACKTYPE) ; ; Maintains APCE xRef When 3 of the 4 entries are present & the 4TH ; has been entered a new entry will be set up. If any of the 4 data ; items used within the X ref are changed the entry will be deleted & a ; new 1 set up N ACKTME,ACKCLIN,ACKVD,ACKPAT D GETVAL I ACKTME="",ACKTYPE'="T" Q I ACKCLIN="",ACKTYPE'="C" Q I ACKVD="",ACKTYPE'="D" Q I ACKPAT="",ACKTYPE'="P" Q ; S ^ACK(509850.6,"APCE",ACKPAT,ACKCLIN,ACKVD,ACKTME,ACKVIEN)="" Q KILLREF(X,ACKVIEN,ACKTYPE) ; ; When any of the 4 var values that make up the APCE xRef are deleted ; or when the visit record is deleted the APCE xRef will be deleted N ACKTME,ACKCLIN,ACKVD,ACKPAT D GETVAL ; I ACKTYPE'="T",ACKTME="" Q ; If any of the 4 field values other than I ACKTYPE'="C",ACKCLIN="" Q ; the field being edited are null the I ACKTYPE'="D",ACKVD="" Q ; xRef will not have been set up I ACKTYPE'="P",ACKPAT="" Q ; I ACKTYPE="D" S ACKVD=X ; X=Old field value I ACKTYPE="P" S ACKPAT=X I ACKTYPE="C" S ACKCLIN=X I ACKTYPE="T" S ACKTME=X ; I $D(^ACK(509850.6,"APCE",ACKPAT,ACKCLIN,ACKVD,ACKTME,ACKVIEN)) D . K ^ACK(509850.6,"APCE",ACKPAT,ACKCLIN,ACKVD,ACKTME,ACKVIEN) Q ; GETVAL ; Used with SETREF & KILLREF - Gets The Clinic, Visit Date, Visit ; time and Patient from the visit file currently being processed N ACKTGT D GETS^DIQ(509850.6,ACKVIEN_",",".01;1;2.6;55","I","ACKTGT") S ACKVD=$G(ACKTGT(509850.6,ACKVIEN_",",.01,"I")) S ACKPAT=$G(ACKTGT(509850.6,ACKVIEN_",",1,"I")) S ACKCLIN=$G(ACKTGT(509850.6,ACKVIEN_",",2.6,"I")) S ACKTME=$G(ACKTGT(509850.6,ACKVIEN_",",55,"I")) Q ; EXCEPT(ACKVIEN,ACKFLD,ACKVAL) ; Called from xRefs within the LAST SENT TO PCE, LAST ; EDITED IN QSR and PCE VISIT IEN fields N ACKTGT,ACKPIEN,ACKSENT,ACKEDIT,ACKARR,ACKEXCP I ACKFLD=125 D . S ACKPIEN=ACKVAL . S ACKSENT=$$GET1^DIQ(509850.6,ACKVIEN_",",135,"I") . S ACKEDIT=$$GET1^DIQ(509850.6,ACKVIEN_",",140,"I") I ACKFLD=135 D . S ACKPIEN=$$GET1^DIQ(509850.6,ACKVIEN_",",125,"I") . S ACKSENT=ACKVAL . S ACKEDIT=$$GET1^DIQ(509850.6,ACKVIEN_",",140,"I") I ACKFLD=140 D . S ACKPIEN=$$GET1^DIQ(509850.6,ACKVIEN_",",125,"I") . S ACKSENT=$$GET1^DIQ(509850.6,ACKVIEN_",",135,"I") . S ACKEDIT=ACKVAL ; ; if PCE visit ien known and PCE updated last then no exception I ACKPIEN'="",ACKEDIT'="",ACKSENT'="",ACKEDIT9 S ACKY=ACKY+1 I $L(ACKY)=1 S ACKY="0"_ACKY I '$D(^ACK(509850.8,1,2,ACKDIV,2,"B",ACKY)) Q 0 S ACKKEY=0 S ACKKEY=$O(^ACK(509850.8,1,2,ACKDIV,2,"B",ACKY,ACKKEY)) S ACKEC=$P(^ACK(509850.8,1,2,ACKDIV,2,ACKKEY,0),"^",2) I ACKEC="" S ACKEC="0" Q ACKEC ;