ACHSCPTE ; IHS/ITSC/PMF - COMPILE CHS CPT CODE REPORT-BY VENDOR/SUMMARY ; [ 10/16/2001 8:16 AM ]
;;3.1;CONTRACT HEALTH MGMT SYSTEM;;JUN 11, 2001
;
S C=0,ACHSFAC=DUZ(2),ACHSDAT=ACHSBEG-1
GETDATE ;
S ACHSDAT=$O(^ACHSF(ACHSFAC,"PDOS",ACHSDAT))
I (ACHSDAT>ACHSEND)!(ACHSDAT="") D
. I $D(ACHSVNDR(0)),'$D(^TMP("ACHSCPT",$J)) S ^TMP("ACHSCPT",$J,0)=""
. I '$D(ACHSVNDR(0)),'$D(^TMP("ACHSCPT",$J)) S ^TMP("ACHSCPT",$J,ACHSVEN,0)=""
.Q
G:ACHSDAT="" ^ACHSCPTF
S ACHSDIEN=""
GETDIEN ;
S ACHSDIEN=$O(^ACHSF(ACHSFAC,"PDOS",ACHSDAT,ACHSDIEN))
G GETDATE:ACHSDIEN=""
I '$D(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,0)) G GETDIEN
GETVNDR ;
S ACHSVEND=$P($G(^ACHSF(ACHSFAC,"D",ACHSDIEN,0)),U,8)
I $D(ACHSVNDR(0)) G GETCODE
I ACHSVEND'=ACHSVEN G GETDIEN
GETCODE ;
S (I,ACHS43,ACHS57,ACHS64)=0
F S I=$O(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,I)) Q:'I D
.S ACHSCODE=$P($P($G(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,I,0)),U),";",1)
.I '$D(ACHSCODE(0))&'$D(ACHSCODE(ACHSCODE)) Q
.I '$D(^TMP("ACHSCPT",$J,ACHSVEND,ACHSCODE)) S ^TMP("ACHSCPT",$J,ACHSVEND,ACHSCODE)="0^0^0"_U_ACHS43_U_ACHS57_U_ACHS64
.S ACHSCHB=$P($G(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,I,0)),U,5)
.S ACHSCHA=$P($G(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,I,0)),U,6)
.S $P(^TMP("ACHSCPT",$J,ACHSVEND,ACHSCODE),U,1)=$P($G(^TMP("ACHSCPT",$J,ACHSVEND,ACHSCODE)),U)+1
.S $P(^TMP("ACHSCPT",$J,ACHSVEND,ACHSCODE),U,2)=$P($G(^TMP("ACHSCPT",$J,ACHSVEND,ACHSCODE)),U,2)+ACHSCHB
.S $P(^TMP("ACHSCPT",$J,ACHSVEND,ACHSCODE),U,3)=$P($G(^TMP("ACHSCPT",$J,ACHSVEND,ACHSCODE)),U,3)+ACHSCHA
.S ACHSSERV=$P($G(^ACHSF(ACHSFAC,"D",ACHSDIEN,0)),U,4)
.I ACHSSERV=1 S $P(^TMP("ACHSCPT",$J,ACHSVEND,ACHSCODE),U,4)=$P($G(^TMP("ACHSCPT",$J,ACHSVEND,ACHSCODE)),U,4)+1
.I ACHSSERV=2 S $P(^TMP("ACHSCPT",$J,ACHSVEND,ACHSCODE),U,5)=$P($G(^TMP("ACHSCPT",$J,ACHSVEND,ACHSCODE)),U,5)+1
.I ACHSSERV=3 S $P(^TMP("ACHSCPT",$J,ACHSVEND,ACHSCODE),U,6)=$P($G(^TMP("ACHSCPT",$J,ACHSVEND,ACHSCODE)),U,6)+1
.S ACHSDEN=ACHSDIEN
.Q
G GETDIEN
;
ACHSCPTE ; IHS/ITSC/PMF - COMPILE CHS CPT CODE REPORT-BY VENDOR/SUMMARY ; [ 10/16/2001 8:16 AM ]
+1 ;;3.1;CONTRACT HEALTH MGMT SYSTEM;;JUN 11, 2001
+2 ;
+3 SET C=0
SET ACHSFAC=DUZ(2)
SET ACHSDAT=ACHSBEG-1
GETDATE ;
+1 SET ACHSDAT=$ORDER(^ACHSF(ACHSFAC,"PDOS",ACHSDAT))
+2 IF (ACHSDAT>ACHSEND)!(ACHSDAT="")
Begin DoDot:1
+3 IF $DATA(ACHSVNDR(0))
IF '$DATA(^TMP("ACHSCPT",$JOB))
SET ^TMP("ACHSCPT",$JOB,0)=""
+4 IF '$DATA(ACHSVNDR(0))
IF '$DATA(^TMP("ACHSCPT",$JOB))
SET ^TMP("ACHSCPT",$JOB,ACHSVEN,0)=""
+5 QUIT
End DoDot:1
+6 IF ACHSDAT=""
GOTO ^ACHSCPTF
+7 SET ACHSDIEN=""
GETDIEN ;
+1 SET ACHSDIEN=$ORDER(^ACHSF(ACHSFAC,"PDOS",ACHSDAT,ACHSDIEN))
+2 IF ACHSDIEN=""
GOTO GETDATE
+3 IF '$DATA(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,0))
GOTO GETDIEN
GETVNDR ;
+1 SET ACHSVEND=$PIECE($GET(^ACHSF(ACHSFAC,"D",ACHSDIEN,0)),U,8)
+2 IF $DATA(ACHSVNDR(0))
GOTO GETCODE
+3 IF ACHSVEND'=ACHSVEN
GOTO GETDIEN
GETCODE ;
+1 SET (I,ACHS43,ACHS57,ACHS64)=0
+2 FOR
SET I=$ORDER(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,I))
IF 'I
QUIT
Begin DoDot:1
+3 SET ACHSCODE=$PIECE($PIECE($GET(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,I,0)),U),";",1)
+4 IF '$DATA(ACHSCODE(0))&'$DATA(ACHSCODE(ACHSCODE))
QUIT
+5 IF '$DATA(^TMP("ACHSCPT",$JOB,ACHSVEND,ACHSCODE))
SET ^TMP("ACHSCPT",$JOB,ACHSVEND,ACHSCODE)="0^0^0"_U_ACHS43_U_ACHS57_U_ACHS64
+6 SET ACHSCHB=$PIECE($GET(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,I,0)),U,5)
+7 SET ACHSCHA=$PIECE($GET(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,I,0)),U,6)
+8 SET $PIECE(^TMP("ACHSCPT",$JOB,ACHSVEND,ACHSCODE),U,1)=$PIECE($GET(^TMP("ACHSCPT",$JOB,ACHSVEND,ACHSCODE)),U)+1
+9 SET $PIECE(^TMP("ACHSCPT",$JOB,ACHSVEND,ACHSCODE),U,2)=$PIECE($GET(^TMP("ACHSCPT",$JOB,ACHSVEND,ACHSCODE)),U,2)+ACHSCHB
+10 SET $PIECE(^TMP("ACHSCPT",$JOB,ACHSVEND,ACHSCODE),U,3)=$PIECE($GET(^TMP("ACHSCPT",$JOB,ACHSVEND,ACHSCODE)),U,3)+ACHSCHA
+11 SET ACHSSERV=$PIECE($GET(^ACHSF(ACHSFAC,"D",ACHSDIEN,0)),U,4)
+12 IF ACHSSERV=1
SET $PIECE(^TMP("ACHSCPT",$JOB,ACHSVEND,ACHSCODE),U,4)=$PIECE($GET(^TMP("ACHSCPT",$JOB,ACHSVEND,ACHSCODE)),U,4)+1
+13 IF ACHSSERV=2
SET $PIECE(^TMP("ACHSCPT",$JOB,ACHSVEND,ACHSCODE),U,5)=$PIECE($GET(^TMP("ACHSCPT",$JOB,ACHSVEND,ACHSCODE)),U,5)+1
+14 IF ACHSSERV=3
SET $PIECE(^TMP("ACHSCPT",$JOB,ACHSVEND,ACHSCODE),U,6)=$PIECE($GET(^TMP("ACHSCPT",$JOB,ACHSVEND,ACHSCODE)),U,6)+1
+15 SET ACHSDEN=ACHSDIEN
+16 QUIT
End DoDot:1
+17 GOTO GETDIEN
+18 ;