ACHSOCV2 ; IHS/ITSC/PMF - COMPILE CHS SERVICE CLASS CODES BY VENDOR - DETAILED ; [ 10/16/2001 8:16 AM ]
;;3.1;CONTRACT HEALTH MGMT SYSTEM;;JUN 11, 2001
;
S ACHSFAC=DUZ(2),ACHSFY1=""
GETFY ;
S ACHSFY1=$O(^ACHSF(ACHSFAC,"D","B",ACHSFY1))
I ACHSFY1="",'$D(^TMP("ACHSOCV",$J,ACHSFAC)) S ^TMP("ACHSOCV",$J,ACHSFAC,0)=""
G:ACHSFY1="" ^ACHSOCVD
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
GETDOC ;
S D=$P(^ACHSF(ACHSFAC,"D",ACHSDIEN,0),U,1),ACHSDOC=$P(^ACHSF(ACHSFAC,"D",ACHSDIEN,0),U,14)_"-"_$P(^AUTTAREA($P(^AUTTLOC(ACHSFAC,0),U,4),0),U,3)_$E($P(^AUTTLOC(ACHSFAC,0),U,17),2,3)_"-"_D
S ACHSHRN=$P(^ACHSF(ACHSFAC,"D",ACHSDIEN,0),U,21),ACHSPAT=$P(^ACHSF(ACHSFAC,"D",ACHSDIEN,0),U,22)
GETVNR ;
S ACHSVEN=$P(^ACHSF(ACHSFAC,"D",ACHSDIEN,0),U,8),ACHSVNDR=$S($D(^AUTTVNDR(ACHSVEN,0)):$P(^(0),U,1),1:"NOT ON FILE")
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 ^TMP("ACHSOCV",$J,ACHSFAC,ACHSVNDR,ACHSOC,ACHSDOC)=ACHSPAT_U_ACHSHRN_U_ACHSOBL_U_ACHSPMT_U_ACHSVEN
G GETDEN
;
ACHSOCV2 ; IHS/ITSC/PMF - COMPILE CHS SERVICE CLASS CODES BY VENDOR - DETAILED ; [ 10/16/2001 8:16 AM ]
+1 ;;3.1;CONTRACT HEALTH MGMT SYSTEM;;JUN 11, 2001
+2 ;
+3 SET ACHSFAC=DUZ(2)
SET ACHSFY1=""
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 ^ACHSOCVD
+4 SET ACHSFYA=$EXTRACT(ACHSFY1,2)
SET ACHSFYB=$EXTRACT(ACHSFY,4)
IF ACHSFYA'=ACHSFYB
GOTO GETFY
+5 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
GETDOC ;
+1 SET D=$PIECE(^ACHSF(ACHSFAC,"D",ACHSDIEN,0),U,1)
SET ACHSDOC=$PIECE(^ACHSF(ACHSFAC,"D",ACHSDIEN,0),U,14)_"-"_$PIECE(^AUTTAREA($PIECE(^AUTTLOC(ACHSFAC,0),U,4),0),U,3)_$EXTRACT($PIECE(^AUTTLOC(ACHSFAC,0),U,17),2,3)_"-"_D
+2 SET ACHSHRN=$PIECE(^ACHSF(ACHSFAC,"D",ACHSDIEN,0),U,21)
SET ACHSPAT=$PIECE(^ACHSF(ACHSFAC,"D",ACHSDIEN,0),U,22)
GETVNR ;
+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")
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 ^TMP("ACHSOCV",$JOB,ACHSFAC,ACHSVNDR,ACHSOC,ACHSDOC)=ACHSPAT_U_ACHSHRN_U_ACHSOBL_U_ACHSPMT_U_ACHSVEN
+4 GOTO GETDEN
+5 ;