Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: ACHS3PPC

ACHS3PPC.m

Go to the documentation of this file.
  1. ACHS3PPC ; IHS/ITSC/PMF - COMPILE CHS THIRD PARTY PAYMENT (ALL PATIENTS) ; [ 04/17/2002 1:56 PM ]
  1. ;;3.1;CONTRACT HEALTH MGMT SYSTEM;**4,16**;JUN 11, 2001
  1. ;ACHS*3.1*4 repair quit statement
  1. ;ACHS*3.1*16 IHS.OIT.FCJ Added amount for insurers
  1. ;
  1. I '$D(ACHSPAT(0)) G ^ACHS3PPA ;THIRD PARTY PAYMENT REPORT
  1. ;
  1. S ACHSFAC=DUZ(2),ACHSFY1=""
  1. GETFY ;
  1. S ACHSFY1=$O(^ACHSF(ACHSFAC,"D","B",ACHSFY1))
  1. I ACHSFY1="",'$D(^TMP("ACHS3PP",$J,ACHSFAC)) S ^TMP("ACHS3PP",$J,ACHSFAC,0)=""
  1. ;
  1. I ACHSFY1="" K ACHSDOCR,X,Y,Z G ^ACHS3PPP ;PRINT THIRD PARTY PAYMENT REPORT (ALL PATS)
  1. ;
  1. S ACHSFYA=$E(ACHSFY1,2),ACHSFYB=$E(ACHSFY,4)
  1. I ACHSFYA'=ACHSFYB G GETFY
  1. ;
  1. D GETDIEN
  1. G GETFY
  1. Q
  1. ;
  1. ;MAIN LOOP
  1. GETDIEN ;
  1. S ACHSDIEN=""
  1. F S ACHSDIEN=$O(^ACHSF(ACHSFAC,"D","B",ACHSFY1,ACHSDIEN)) Q:ACHSDIEN="" D
  1. .Q:'$D(^ACHSF(ACHSFAC,"D",ACHSDIEN,0))!'$D(^ACHSF(ACHSFAC,"D",ACHSDIEN,"PA"))
  1. .;
  1. .;SKIP IF 'TOTAL AMOUNT OBLIGATED' ?????WHAT ABOUT NEGATIVES?????
  1. .Q:$P($G(^ACHSF(ACHSFAC,"D",ACHSDIEN,0)),U,9)'>0
  1. .S ACHSDOCR=$G(^ACHSF(ACHSFAC,"D",ACHSDIEN,0)) ;GET DOCUMENT 0 NODE
  1. .;
  1. .;GET 'TYPE OF SERVICE'
  1. .S ACHSSERV=$S($P(ACHSDOCR,U,4):$P(ACHSDOCR,U,4),1:"UNKN")
  1. .;
  1. .;ACHSSER=4 MEANS ALL TYPES
  1. .Q:'(ACHSSER=4)&(ACHSSERV'=ACHSSER)
  1. .D GETIDT
  1. Q
  1. ;
  1. GETIDT ;
  1. S ACHSIDT=$P(ACHSDOCR,U,2) ;'ORDER DATE'
  1. S ACHSOBL=$P(ACHSDOCR,U,9) ;'TOTAL OBLIGATED AMOUNT'
  1. K Z
  1. ;
  1. ;GO THROUGH TRANSACTIONS
  1. F %=0:0 S %=$O(^ACHSF(ACHSFAC,"D",ACHSDIEN,"T",%)) Q:'% D
  1. .S X=$G(^ACHSF(ACHSFAC,"D",ACHSDIEN,"T",%,0))
  1. .;
  1. .S Y=$P(X,U,2) ;'TRANSACTION TYPE'
  1. .;
  1. .;IF 'TRANSACTION TYPE' IS NOT "INITIAL" AND NOT "CANCEL"
  1. .I Y'="I",Y'="C" D
  1. ..S Z("I")=$G(Z("I"))+$P(X,U,4) ;ADD IN 'IHS PAYMENT AMOUNT'
  1. ..S Z("3")=$G(Z("3"))+$P(X,U,8) ;ADD IN 'THIRD PARTY PAY AMT'
  1. ..;ACHS*3.1*16 IHS.OIT.FCJ ADDED NXT SECTION FOR DETAIL TP INSURER
  1. ..I (ACHSRTYP="T")!(ACHSRTYP="P") D
  1. ...I $P(X,U,12)="",$P(X,U,8)>0 S:'$D(Z("TP","U")) Z("TP","U")=0 S Z("TP","U")=Z("TP","U")+$P(X,U,8) Q ;UNIDENTIFIED INSURANCE
  1. ...I $P(X,U,12)="",$P(X,U,8)<1 S:'$D(Z("TP","I")) Z("TP","I")=0 S Z("TP","I")=Z("TP","I")+$P(X,U,4) Q ;IHS PAY DOCUMENTS
  1. ...I '$D(Z("T",$P(X,U,12))) S Z("T",$P(X,U,12))=$P(X,U,8)
  1. ...E S Z("T",$P(X,U,12))=Z("T",$P(X,U,12))+$P(X,U,8)
  1. ;
  1. ;ACHS*3.1*4 3/26/02 pmf just wanna quit Q:'$D(Z) GETDIEN
  1. I '$D(Z) Q ; ACHS*3.1*4```````1=($G(^AUTTLOC(ACHSFAC,0)),U,4),0)),U,3)_$E($P($G(^AUTTLOC(ACHSFAC,0)),U,17),2,3)_"-"_$P(ACHSDOCR,U)
  1. ;
  1. ;GET 'FISCAL YEAR' _ 'PREFIX/REGION' _ 'FINANCIAL LOCATION CODE' _
  1. ;'ORDER NUMBER'
  1. S ACHSDOC=$P(ACHSDOCR,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)_"-"_$P(ACHSDOCR,U)
  1. ;
  1. S ^TMP("ACHS3PP",$J,ACHSFAC,ACHSDOC)=ACHSIDT_U_ACHSOBL_U_Z("3")_U_Z("I")_U_ACHSSERV
  1. ;ACHS*3.1*16 IHS.OIT.FCJ ADDED 3 NXT LINES
  1. I (ACHSRTYP="T")!(ACHSRTYP="P") D
  1. .F X="I","U" S:$D(Z("TP",X)) ^TMP("ACHS3PP",$J,ACHSFAC,X,ACHSDOC)=Z("TP",X)
  1. .S X="" F S X=$O(Z("T",X)) Q:X="" S ^TMP("ACHS3PP",$J,ACHSFAC,"T",X,ACHSDOC)=Z("T",X)
  1. Q
  1. ;