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

IVM228P.m

Go to the documentation of this file.
  1. IVM228P ;ALB/SE,RTK - Means Test Utilities ;09/05/00
  1. ;;2.0;INCOME VERIFICATION MATCH;**28**; 21-OCT-94
  1. ;
  1. ;This routine will determine if "AC" (Means Tests) and "AD"
  1. ;(Copay tests) x-references are set for future tests in the
  1. ;IVM PATIENT file (#301.5). If a future test without a
  1. ;x-reference is found, the routine will set a x-reference for
  1. ;it.
  1. ;
  1. EN ;entry point
  1. D INIT
  1. Q
  1. EN1 D CREATE
  1. D AC
  1. D AD
  1. D MULTI
  1. D CLEAN
  1. Q
  1. ;
  1. ;
  1. INIT N %,I,X,X1,X2
  1. S FILERR=""
  1. I $D(XPDNM) D
  1. .I $$VERCP^XPDUTL("DGFDT")'>0 D
  1. ..S %=$$NEWCP^XPDUTL("DGFDT","",DT)
  1. .I $$VERCP^XPDUTL("DG5IEN")'>0 D
  1. ..S %=$$NEWCP^XPDUTL("DG5IEN","",0)
  1. .I $$VERCP^XPDUTL("DG31IEN")'>0 D
  1. ..S %=$$NEWCP^XPDUTL("DG31IEN","",0)
  1. ;
  1. F I="MTRECS","MTFIX","MTERR" D
  1. .I $D(^XTMP("DG-"_I)) Q
  1. .S X1=DT
  1. .S X2=30
  1. .D C^%DTC
  1. .S ^XTMP("DG-"_I,0)=X_"^"_$$DT^XLFDT_"^IVM*2*28 POST-INSTALL "_$S(I="MTRECS":"record count",I="MTFIX":"records corrected",1:"filing errors")
  1. ;
  1. I '$D(XPDNM) S (^XTMP("DG-MTRECS",1),^XTMP("DG-MTFIX",1))=0
  1. I $D(XPDNM) S %=$$VERCP^XPDUTL("DGFDT") D
  1. .I '$D(^XTMP("DG-MTRECS",1)) S ^XTMP("DG-MTRECS",1)=0
  1. .I '$D(^XTMP("DG-MTFIX",1)) S ^XTMP("DG-MTFIX",1)=0
  1. I $G(%)="" S %=0
  1. I %=0 D EN1
  1. Q
  1. CREATE ;from the "B" x-reference in 408.31 create entries in the temp global
  1. ;
  1. K ^TMP("DGFUTURE",$J)
  1. N DGFDT,DG31IEN
  1. S DGFDT=DT
  1. F S DGFDT=$O(^DGMT(408.31,"B",DGFDT)) Q:'DGFDT D
  1. .S DG31IEN=0
  1. .F S DG31IEN=$O(^DGMT(408.31,"B",DGFDT,DG31IEN)) Q:'DG31IEN D
  1. ..S ^TMP("DGFUTURE",$J,DGFDT,DG31IEN)=""
  1. ..S ^XTMP("DG-MTRECS",1)=$G(^XTMP("DG-MTRECS",1))+1
  1. ..Q
  1. Q
  1. ;
  1. ;
  1. AC ;delete entries in ^TMP found in the "AC" x-ref in 301.5
  1. N DGFDT,DG5IEN,DG31IEN,DATA,%
  1. S DGFDT=DT
  1. F S DGFDT=$O(^IVM(301.5,"AC",DGFDT)) Q:'DGFDT D
  1. .S DG5IEN=0
  1. .F S DG5IEN=$O(^IVM(301.5,"AC",DGFDT,DG5IEN)) Q:'DG5IEN D
  1. ..S DG31IEN=0
  1. ..S DG31IEN=$O(^IVM(301.5,"AC",DGFDT,DG5IEN,DG31IEN)) Q:'DG31IEN D
  1. ...I $D(^TMP("DGFUTURE",$J,DGFDT,DG31IEN)) D
  1. ....K ^TMP("DGFUTURE",$J,DGFDT,DG31IEN)
  1. ....I $P(^IVM(301.5,DG5IEN,0),"^",6)="" S DATA(.06)=DG31IEN I '$$UPD^DGENDBS(301.5,DG5IEN,.DATA) S FILERR(301.5,DG31IEN)="Unable to access cross reference"
  1. ....I $G(FILERR) M ^XTMP("DG-MTERR")=FILERR K FILERR
  1. ...I $D(XPDNM) S %=$$UPCP^XPDUTL("DG31IEN",DG31IEN)
  1. ..I $D(XPDNM) S %=$$UPCP^XPDUTL("DG5IEN",DG5IEN)
  1. .I $D(XPDNM) S %=$$UPCP^XPDUTL("DGFDT",DGFDT)
  1. Q
  1. ;
  1. ;
  1. N DGFDT,DG5IEN,DG31IEN,DATA,%
  1. S DGFDT=DT
  1. F S DGFDT=$O(^IVM(301.5,"AD",DGFDT)) Q:'DGFDT D
  1. .S DG5IEN=0
  1. .F S DG5IEN=$O(^IVM(301.5,"AD",DGFDT,DG5IEN)) Q:'DG5IEN D
  1. ..S DG31IEN=0
  1. ..S DG31IEN=$O(^IVM(301.5,"AD",DGFDT,DG5IEN,DG31IEN)) Q:'DG31IEN D
  1. ...I $D(^TMP("DGFUTURE",$J,DGFDT,DG31IEN)) D
  1. ....K ^TMP("DGFUTURE",$J,DGFDT,DG31IEN)
  1. ....I $P(^IVM(301.5,DG5IEN,0),"^",7)="" S DATA(.07)=DG31IEN I '$$UPD^DGENDBS(301.5,DG5IEN,.DATA) S FILERR(301.5,DG31IEN)="Unable to access cross reference"
  1. ....I $G(FILERR) M ^XTMP("DG-MTERR")=FILERR K FILERR
  1. ...I $D(XPDNM) S %=$$UPCP^XPDUTL("DG31IEN",DG31IEN)
  1. ..I $D(XPDNM) S %=$$UPCP^XPDUTL("DG5IEN",DG5IEN)
  1. .I $D(XPDNM) S %=$$UPCP^XPDUTL("DGFDT",DGFDT)
  1. Q
  1. ;
  1. ;
  1. MULTI ;since there can be multi future tests for a patient, check to see
  1. ;if there is a value in the patient's 1999 income year record in
  1. ;file #301.5 in the 6th piece (means test ien) or the 7th piece
  1. ;(copay test ien). delete entry in the ^TMP if there is a pointer
  1. ;to the 408.31 file in either field.
  1. ;
  1. N DFN,DGFDT,DG31IEN,DG5IEN,DG5IEN1,DGTYPE,ERRMSG
  1. S DGFDT=DT
  1. F S DGFDT=$O(^TMP("DGFUTURE",$J,DGFDT)) Q:'DGFDT D
  1. .S DG31IEN=0
  1. .F S DG31IEN=$O(^TMP("DGFUTURE",$J,DGFDT,DG31IEN)) Q:'DG31IEN D
  1. ..S DFN=$P($G(^DGMT(408.31,DG31IEN,0)),"^",2) Q:'DFN
  1. ..S DGTYPE=$P($G(^DGMT(408.31,DG31IEN,0)),"^",19)
  1. ..S DG5IEN=0
  1. ..S DG5IEN=$O(^IVM(301.5,"AYR",2990000,DFN,DG5IEN)) Q:'DG5IEN D
  1. ...S DG5IEN1=$G(^IVM(301.5,DG5IEN,0)) Q:'DG5IEN1 D
  1. ....I (($P(DG5IEN1,"^",6))!($P(DG5IEN1,"^",7))) K ^TMP("DGFUTURE",$J,DGFDT,DG31IEN) Q
  1. ....S ERRMSG=""
  1. ....D ADDFUTR^IVMPLOG2(DG31IEN) I ERRMSG'="" S FILERR(301.5,DG31IEN)="Unable to create cross reference"
  1. ....S ^XTMP("DG-MTFIX",1)=$G(^XTMP("DG-MTFIX",1))+1
  1. ....I $G(FILERR) M ^XTMP("DG-MTERR")=FILERR K FILERR
  1. ;
  1. D MAIL^IVM228M
  1. I $D(XPDNM) S %=$$COMCP^XPDUTL("DGFDT")
  1. D BMES^XPDUTL(" Means test clean up routine has completed successfully.")
  1. Q
  1. ;
  1. CLEAN K ^TMP("DGFUTURE",$J)
  1. Q