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

DGVPTIB6.m

Go to the documentation of this file.
  1. DGVPTIB6 ;alb/mjk - DGCRNS for export with PIMS v5.3; 4/21/93
  1. ;;5.3;Registration;**1015**;Aug 13, 1993;Build 21
  1. ;
  1. DGCRNS ;ALB/AAS - IS INSURANCE ACTIVE ; 22-JULY-91
  1. ;;Version 1.5 ; INTEGRATED BILLING ;**14**; 29-JUL-92
  1. ;
  1. Q ;ihs/cmi/maw 02/08/2012 patch 1014 no IB in IHS so entire routine not needed
  1. ;Input - DFN = patient
  1. ; - DGCRINDT = (optional) date to check ins active for or today if not defined
  1. ; - DGCROUTP = (optional) 1 if want active insurance returned in DGCRDD(insurance company)=node in patient file
  1. ; - = 2 if want all ins returned
  1. ;
  1. ;Output - DGCRINS = 1 if has active ins., 0 if no active ins.
  1. ; - DGCRDD() = internal node in patient file of valid ins.
  1. ; - DGCRDDI() = internal node in patient file of invalid ins.
  1. ;
  1. % N J,X S DGCRINS=0 K DGCRDD,DGCRDDI
  1. S J=0 F S J=$O(^DPT(DFN,.312,J)) Q:'J I $D(^DPT(DFN,.312,J,0)) S X=^(0) D CHK
  1. Q
  1. ;
  1. CHK ;
  1. ;Input - DGCRI = entry in insurance multiple
  1. ;
  1. S Z=$S($D(DGCRINDT):DGCRINDT,1:DT),Z1=$S($D(DGCROUTP):DGCROUTP,1:0)
  1. G:'$D(^DIC(36,+X,0)) CHKQ S X1=^(0) ;insurance company entry doesn't exist
  1. I $P(X,"^",8) G:Z<$P(X,"^",8) CHKQ ;effective date later than care
  1. I $P(X,"^",4) G:Z>$P(X,"^",4) CHKQ ;care after expiration date
  1. G:$P(X1,"^",5) CHKQ ;insurance company inactive
  1. G:$P(X1,"^",2)="N" CHKQ ;insurance company will not reimburse
  1. S DGCRINS=1 I Z1 S DGCRDD(+X)=X
  1. CHKQ S:Z1=2&('$D(DGCRDD(+X))) DGCRDDI(+X)=X
  1. K X,X1,Z,Z1 Q
  1. ;
  1. DD ; - called from input transform and x-refs for field 101,102,103
  1. ; - input requires da=internal entry number in 399
  1. ; - outputs dgcrdd(ins co.) array
  1. N DFN S DFN=$P(^DGCR(399,DA,0),"^",2),DGCROUTP=1,DGCRINDT=$S(+$G(^DGCR(399,DA,"U")):+$G(^("U")),1:DT)
  1. D %
  1. DDQ K DGCROUTP,DGCRINDT Q
  1. ;
  1. ;
  1. DISP ; -Display all insurance company information
  1. ; -input DFN
  1. ;
  1. Q:'$D(DFN) D:'$D(IOF) HOME^%ZIS
  1. S DGCROUTP=2 D DGCRNS
  1. ;
  1. D HDR
  1. I '$D(DGCRDD),'$D(DGCRDDI) W !,"No Insurance Information" G DISPQ
  1. ;
  1. S X="" F S X=$O(DGCRDD(X)) Q:X="" S IBINS=DGCRDD(X) D D1 ;active insurance
  1. S X="" F S X=$O(DGCRDDI(X)) Q:X="" S IBINS=DGCRDDI(X) D D1 ;inactive ins
  1. ;
  1. DISPQ K DGCRDD,DGCRDDI,DGCRX
  1. Q
  1. ;
  1. HDR W !?4,"Insurance Co.",?22,"Policy #",?40,"Group",?52,"Holder",?60,"Effective",?70,"Expires" S X="",$P(X,"=",IOM-4)="" W !?4,X
  1. Q
  1. ;
  1. ;
  1. D1 N X Q:'$D(IBINS)
  1. W !?4,$S($D(^DIC(36,+IBINS,0)):$E($P(^(0),"^",1),1,16),1:"UNKNOWN")
  1. W ?22,$E($P(IBINS,"^",2),1,16),?40,$E($S($P(IBINS,"^",15)'="":$P(IBINS,"^",15),1:$P(IBINS,"^",3)),1,10)
  1. S X=$P(IBINS,"^",6) W ?52,$S(X="v":"SELF",X="s":"SPOUSE",1:"OTHER")
  1. W ?60,$$DAT1^IBOUTL($P(IBINS,"^",8)),?70,$$DAT1^IBOUTL($P(IBINS,"^",4))
  1. Q