- ACHSCPTG ; IHS/ITSC/PMF - COMPILE CHS CPT CODE REPORT-BY VENDOR/DETAILED ; [ 10/16/2001 8:16 AM ]
- ;;3.1;CONTRACT HEALTH MGMT SYSTEM;;JUN 11, 2001
- ;
- S ACHSDAT=ACHSBEG-1,C=0,ACHSFAC=DUZ(2)
- 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)=""
- G:ACHSDAT="" ^ACHSCPTH
- S ACHSDIEN=""
- GETDIEN ;
- S ACHSDIEN=$O(^ACHSF(ACHSFAC,"PDOS",ACHSDAT,ACHSDIEN))
- G GETDATE:ACHSDIEN=""
- I '$D(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,0)) G GETDIEN
- GETDOC ;
- S D=$P($G(^ACHSF(ACHSFAC,"D",ACHSDIEN,0)),U)
- S ACHSDOC=$P($G(^ACHSF(ACHSFAC,"D",ACHSDIEN,0)),U,14)_"-"_$P($G(^AUTTAREA($P($G(^AUTTLOC(ACHSFAC,0)),U,4),0)),U,3)_$E($P($G(^AUTTLOC(ACHSFAC,0)),U,17),2,3)_"-"_D
- 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,ACHSCPTA)=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),";")
- .I '$D(ACHSCODE(0))&'$D(ACHSCODE(ACHSCODE)) Q
- .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 ACHSFROM=$P($G(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,I,0)),U,2)
- .S ACHSTO=$P($G(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,I,0)),U,3)
- .S ACHSWLU=$P($G(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,I,0)),U,4)
- .S ACHSMGS=$P($G(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,I,0)),U,7)
- .S ACHS2TH=$P($G(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,I,0)),U,8)
- .S ACHSSURF=$P($G(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,I,0)),U,9)
- .S ACHSSERV=$P($G(^ACHSF(ACHSFAC,"D",ACHSDIEN,0)),U,4)
- .S ^TMP("ACHSCPT",$J,ACHSVEND,ACHSCODE,ACHSDOC,I)=ACHSSERV_U_ACHSFROM_U_ACHSTO_U_ACHSWLU_U_ACHSCHB_U_ACHSCHA_U_ACHSMGS_U_ACHS2TH_U_ACHSSURF_U_ACHSVEND Q
- G GETDIEN
- ;
- ACHSCPTG ; IHS/ITSC/PMF - COMPILE CHS CPT CODE REPORT-BY VENDOR/DETAILED ; [ 10/16/2001 8:16 AM ]
- +1 ;;3.1;CONTRACT HEALTH MGMT SYSTEM;;JUN 11, 2001
- +2 ;
- +3 SET ACHSDAT=ACHSBEG-1
- SET C=0
- SET ACHSFAC=DUZ(2)
- 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)=""
- End DoDot:1
- +5 IF ACHSDAT=""
- GOTO ^ACHSCPTH
- +6 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
- GETDOC ;
- +1 SET D=$PIECE($GET(^ACHSF(ACHSFAC,"D",ACHSDIEN,0)),U)
- +2 SET ACHSDOC=$PIECE($GET(^ACHSF(ACHSFAC,"D",ACHSDIEN,0)),U,14)_"-"_$PIECE($GET(^AUTTAREA($PIECE($GET(^AUTTLOC(ACHSFAC,0)),U,4),0)),U,3)_$EXTRACT($PIECE($GET(^AUTTLOC(ACHSFAC,0)),U,17),2,3)_"-"_D
- 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,ACHSCPTA)=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),";")
- +4 IF '$DATA(ACHSCODE(0))&'$DATA(ACHSCODE(ACHSCODE))
- QUIT
- +5 SET ACHSCHB=$PIECE($GET(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,I,0)),U,5)
- +6 SET ACHSCHA=$PIECE($GET(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,I,0)),U,6)
- +7 SET ACHSFROM=$PIECE($GET(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,I,0)),U,2)
- +8 SET ACHSTO=$PIECE($GET(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,I,0)),U,3)
- +9 SET ACHSWLU=$PIECE($GET(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,I,0)),U,4)
- +10 SET ACHSMGS=$PIECE($GET(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,I,0)),U,7)
- +11 SET ACHS2TH=$PIECE($GET(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,I,0)),U,8)
- +12 SET ACHSSURF=$PIECE($GET(^ACHSF(ACHSFAC,"D",ACHSDIEN,11,I,0)),U,9)
- +13 SET ACHSSERV=$PIECE($GET(^ACHSF(ACHSFAC,"D",ACHSDIEN,0)),U,4)
- +14 SET ^TMP("ACHSCPT",$JOB,ACHSVEND,ACHSCODE,ACHSDOC,I)=ACHSSERV_U_ACHSFROM_U_ACHSTO_U_ACHSWLU_U_ACHSCHB_U_ACHSCHA_U_ACHSMGS_U_ACHS2TH_U_ACHSSURF_U_ACHSVEND
- QUIT
- End DoDot:1
- +15 GOTO GETDIEN
- +16 ;