- ACHSOCV1 ; IHS/ITSC/PMF - COMPILE CHS SERVICE CLASS CODES BY VENDOR - SUMMARY ; [ 10/16/2001 8:16 AM ]
- ;;3.1;CONTRACT HEALTH MGMT SYSTEM;;JUN 11, 2001
- ;
- S ACHSFY1="",ACHSFAC=DUZ(2)
- GETFY ;
- S ACHSFY1=$O(^ACHSF(ACHSFAC,"D","B",ACHSFY1))
- I ACHSFY1="",'$D(^TMP("ACHSOCV",$J,ACHSFAC)) S ^TMP("ACHSOCV",$J,ACHSFAC,0)=""
- G:ACHSFY1="" ^ACHSOCVS
- S ACHSFYA=$E(ACHSFY1,2),ACHSFYB=$E(ACHSFY,4)
- I ACHSFYA'=ACHSFYB G GETFY
- S ACHSDIEN=""
- GETDEN ;
- S ACHSDIEN=$O(^ACHSF(ACHSFAC,"D","B",ACHSFY1,ACHSDIEN))
- G:ACHSDIEN="" GETFY
- I '$D(^ACHSF(ACHSFAC,"D",ACHSDIEN,0)) G GETDEN
- I $P(^ACHSF(ACHSFAC,"D",ACHSDIEN,0),U,9)'>0 G GETDEN
- GETCODE ;
- S ACHSOC=$P(^ACHSF(ACHSFAC,"D",ACHSDIEN,0),U,7)
- I '$D(^ACHS(3,ACHSFAC,1,ACHSOC,0)) G GETDEN
- GETVDR ;
- S ACHSVEN=$P(^ACHSF(ACHSFAC,"D",ACHSDIEN,0),U,8),ACHSVNDR=$S($D(^AUTTVNDR(ACHSVEN,0)):$P(^(0),U,1),1:"NOT ON FILE")
- I '$D(^TMP("ACHSOCV",$J,ACHSFAC,ACHSVNDR,ACHSOC)) S ^TMP("ACHSOCV",$J,ACHSFAC,ACHSVNDR,ACHSOC)="0^0^0"
- GETOBL ;
- S ACHSOBL=$P(^ACHSF(ACHSFAC,"D",ACHSDIEN,0),U,9)
- GETPMT ;
- S ACHSPMT=$S($D(^ACHSF(ACHSFAC,"D",ACHSDIEN,"PA")):$P(^("PA"),U,1),1:0)
- I $D(^ACHSF(ACHSFAC,"D",ACHSDIEN,"ZA")) S ACHSADJ=$S($P(^ACHSF(ACHSFAC,"D",ACHSDIEN,"ZA"),U,2):$P(^("ZA"),U,2),1:0) S ACHSPMT=ACHSPMT+ACHSADJ
- S $P(^TMP("ACHSOCV",$J,ACHSFAC,ACHSVNDR,ACHSOC),U,1)=$P(^TMP("ACHSOCV",$J,ACHSFAC,ACHSVNDR,ACHSOC),U,1)+1
- S $P(^TMP("ACHSOCV",$J,ACHSFAC,ACHSVNDR,ACHSOC),U,2)=$P(^TMP("ACHSOCV",$J,ACHSFAC,ACHSVNDR,ACHSOC),U,2)+ACHSOBL
- S $P(^TMP("ACHSOCV",$J,ACHSFAC,ACHSVNDR,ACHSOC),U,3)=$P(^TMP("ACHSOCV",$J,ACHSFAC,ACHSVNDR,ACHSOC),U,3)+ACHSPMT
- G GETDEN
- ;
- ACHSOCV1 ; IHS/ITSC/PMF - COMPILE CHS SERVICE CLASS CODES BY VENDOR - SUMMARY ; [ 10/16/2001 8:16 AM ]
- +1 ;;3.1;CONTRACT HEALTH MGMT SYSTEM;;JUN 11, 2001
- +2 ;
- +3 SET ACHSFY1=""
- SET ACHSFAC=DUZ(2)
- GETFY ;
- +1 SET ACHSFY1=$ORDER(^ACHSF(ACHSFAC,"D","B",ACHSFY1))
- +2 IF ACHSFY1=""
- IF '$DATA(^TMP("ACHSOCV",$JOB,ACHSFAC))
- SET ^TMP("ACHSOCV",$JOB,ACHSFAC,0)=""
- +3 IF ACHSFY1=""
- GOTO ^ACHSOCVS
- +4 SET ACHSFYA=$EXTRACT(ACHSFY1,2)
- SET ACHSFYB=$EXTRACT(ACHSFY,4)
- +5 IF ACHSFYA'=ACHSFYB
- GOTO GETFY
- +6 SET ACHSDIEN=""
- GETDEN ;
- +1 SET ACHSDIEN=$ORDER(^ACHSF(ACHSFAC,"D","B",ACHSFY1,ACHSDIEN))
- +2 IF ACHSDIEN=""
- GOTO GETFY
- +3 IF '$DATA(^ACHSF(ACHSFAC,"D",ACHSDIEN,0))
- GOTO GETDEN
- +4 IF $PIECE(^ACHSF(ACHSFAC,"D",ACHSDIEN,0),U,9)'>0
- GOTO GETDEN
- GETCODE ;
- +1 SET ACHSOC=$PIECE(^ACHSF(ACHSFAC,"D",ACHSDIEN,0),U,7)
- +2 IF '$DATA(^ACHS(3,ACHSFAC,1,ACHSOC,0))
- GOTO GETDEN
- GETVDR ;
- +1 SET ACHSVEN=$PIECE(^ACHSF(ACHSFAC,"D",ACHSDIEN,0),U,8)
- SET ACHSVNDR=$SELECT($DATA(^AUTTVNDR(ACHSVEN,0)):$PIECE(^(0),U,1),1:"NOT ON FILE")
- +2 IF '$DATA(^TMP("ACHSOCV",$JOB,ACHSFAC,ACHSVNDR,ACHSOC))
- SET ^TMP("ACHSOCV",$JOB,ACHSFAC,ACHSVNDR,ACHSOC)="0^0^0"
- GETOBL ;
- +1 SET ACHSOBL=$PIECE(^ACHSF(ACHSFAC,"D",ACHSDIEN,0),U,9)
- GETPMT ;
- +1 SET ACHSPMT=$SELECT($DATA(^ACHSF(ACHSFAC,"D",ACHSDIEN,"PA")):$PIECE(^("PA"),U,1),1:0)
- +2 IF $DATA(^ACHSF(ACHSFAC,"D",ACHSDIEN,"ZA"))
- SET ACHSADJ=$SELECT($PIECE(^ACHSF(ACHSFAC,"D",ACHSDIEN,"ZA"),U,2):$PIECE(^("ZA"),U,2),1:0)
- SET ACHSPMT=ACHSPMT+ACHSADJ
- +3 SET $PIECE(^TMP("ACHSOCV",$JOB,ACHSFAC,ACHSVNDR,ACHSOC),U,1)=$PIECE(^TMP("ACHSOCV",$JOB,ACHSFAC,ACHSVNDR,ACHSOC),U,1)+1
- +4 SET $PIECE(^TMP("ACHSOCV",$JOB,ACHSFAC,ACHSVNDR,ACHSOC),U,2)=$PIECE(^TMP("ACHSOCV",$JOB,ACHSFAC,ACHSVNDR,ACHSOC),U,2)+ACHSOBL
- +5 SET $PIECE(^TMP("ACHSOCV",$JOB,ACHSFAC,ACHSVNDR,ACHSOC),U,3)=$PIECE(^TMP("ACHSOCV",$JOB,ACHSFAC,ACHSVNDR,ACHSOC),U,3)+ACHSPMT
- +6 GOTO GETDEN
- +7 ;