XUSNPIUT ;JLI/FO-OAK - UNIT TEST ROUTINE FOR NPI WORK ;5/12/06  08:54
 ;;8.0;KERNEL;**420**;Jul 10, 1995;Build 20
 I $T(EN^XTMUNIT)'="" D EN^XTMUNIT("XUSNPIUT")
 Q
 ;
ALIGNRGT ;
 D CHKEQ^XTMUNIT($$ALIGNRGT^XUSNPIED("TEXT1",10),"     TEXT1","INCORRECT RETURN VALUE")
 D CHKEQ^XTMUNIT($$ALIGNRGT^XUSNPIED("AA AA",6)," AA AA","INCORRECT RETURN VALUE")
 Q
 ;
NEEDSNPI ;
 N OLDVALUE,NEWVALUE,XUFDA,IENS
 S IENS=DUZ_","
 S OLDVALUE=$$GET1^DIQ(200,IENS,41.98)
 K XUFDA S XUFDA(200,IENS,41.98)="@" D FILE^DIE("","XUFDA")
 D CHKEQ^XTMUNIT($$NEEDSNPI^XUSNPIED(DUZ),0,"INCORRECT OR NO DATA")
 ;
 K XUFDA S XUFDA(200,IENS,41.98)="N" D FILE^DIE("","XUFDA")
 D CHKEQ^XTMUNIT($$NEEDSNPI^XUSNPIED(DUZ),1,"INCORRECT ON NEEDS")
 ;
 K XUFDA S XUFDA(200,IENS,41.98)="E" D FILE^DIE("","XUFDA")
 D CHKEQ^XTMUNIT($$NEEDSNPI^XUSNPIED(DUZ),0,"INCORRECT ON EXEMPT")
 ;
 K XUFDA S XUFDA(200,IENS,41.98)="D" D FILE^DIE("","XUFDA")
 D CHKEQ^XTMUNIT($$NEEDSNPI^XUSNPIED(DUZ),0,"INCORRECT ON DONE")
 ;
 K XUFDA S XUFDA(200,IENS,41.98)=$S(OLDVALUE'="":OLDVALUE,1:"@")
 Q
 ;
HASNPI ;
 N OLDVALUE,NEWVALUE,XUFDA,IENS
 S IENS=DUZ_","
 S OLDVALUE=$$GET1^DIQ(200,IENS,41.98)
 K XUFDA S XUFDA(200,IENS,41.98)="@" D FILE^DIE("","XUFDA")
 D CHKEQ^XTMUNIT($$HASNPI^XUSNPIED(DUZ),0,"INCORRECT ON NO DATA")
 ;
 K XUFDA S XUFDA(200,IENS,41.98)="N" D FILE^DIE("","XUFDA")
 D CHKEQ^XTMUNIT($$HASNPI^XUSNPIED(DUZ),0,"INCORRECT ON NEEDS")
 ;
 K XUFDA S XUFDA(200,IENS,41.98)="E" D FILE^DIE("","XUFDA")
 D CHKEQ^XTMUNIT($$HASNPI^XUSNPIED(DUZ),0,"INCORRECT ON EXEMPT")
 ;
 K XUFDA S XUFDA(200,IENS,41.98)="D" D FILE^DIE("","XUFDA")
 D CHKEQ^XTMUNIT($$HASNPI^XUSNPIED(DUZ),1,"INCORRECT ON DONE")
 ;
 K XUFDA S XUFDA(200,IENS,41.98)=$S(OLDVALUE'="":$E(OLDVALUE),1:"@")
 Q
 ;
GETNPI ;
 N I,VALUE
 F I=0:0 S I=$O(^VA(200,I)) Q:I'>0  I $G(^VA(200,I,"NPI"))'="" Q
 I I'>0 D FAIL^XTMUNIT("NO VALID DATA AVAILABLE") Q
 S VALUE=$$GET1^DIQ(200,I_",",41.99)
 D CHKEQ^XTMUNIT($$GETNPI^XUSNPIED(I),VALUE,"INCORRECT VALUE RETURNED")
 Q
 ;
NPISTATS ;
 N OLDVALUE,NEWVALUE,XUFDA,IENS
 S IENS=DUZ_","
 S OLDVALUE=$$GET1^DIQ(200,IENS,41.98)
 K XUFDA S XUFDA(200,IENS,41.98)="@" D FILE^DIE("","XUFDA")
 D CHKEQ^XTMUNIT($$NPISTATS^XUSNPIED(DUZ),"","INCORRECT ON NO DATA")
 ;
 K XUFDA S XUFDA(200,IENS,41.98)="N" D FILE^DIE("","XUFDA")
 D CHKEQ^XTMUNIT($$NPISTATS^XUSNPIED(DUZ),"N","INCORRECT ON NEEDS")
 ;
 K XUFDA S XUFDA(200,IENS,41.98)="E" D FILE^DIE("","XUFDA")
 D CHKEQ^XTMUNIT($$NPISTATS^XUSNPIED(DUZ),"E","INCORRECT ON EXEMPT")
 ;
 K XUFDA S XUFDA(200,IENS,41.98)="D" D FILE^DIE("","XUFDA")
 D CHKEQ^XTMUNIT($$NPISTATS^XUSNPIED(DUZ),"D","INCORRECT ON DONE")
 ;
 K XUFDA S XUFDA(200,IENS,41.98)=$S(OLDVALUE'="":$E(OLDVALUE),1:"@")
 Q
 ;
GETTAXON ;
 N XUSGLOB,DONE,IEN,TAXON,PVAL,CODE,DESCRIP,TAXDESCR
 S XUSGLOB=$$CHKGLOB^XUSNPIED()
 S DONE=0 F IEN=0:0 Q:DONE  S IEN=$O(^VA(200,IEN)) Q:IEN'>0  F TAXON=0:0 S TAXON=$O(^VA(200,IEN,"USC1",TAXON)) Q:TAXON'>0  I $P(^(TAXON,0),U,3)'>0  S PVAL=$P(^(0),U),CODE=$$GET1^DIQ(8932.1,PVAL_",",6) I CODE'="",$D(@XUSGLOB@(CODE)) S DONE=1 Q
 I 'DONE D FAIL^XTMUNIT("NO VALID TAXONOMY VALUES FOUND") Q
 S TAXDESCR=$$GET1^DIQ(8932.1,PVAL_",",1)
 S DESCRIP=""
 I CODE'="" S TAXON=$$GETTAXON^XUSNPIED(IEN,.DESCRIP)
 D CHKEQ^XTMUNIT(TAXON,CODE,"INCORRECT CODE RETURNED")
 D CHKEQ^XTMUNIT(DESCRIP,TAXDESCR,"INCORRECT DESCRIPTION RETURNED")
 Q
 ;
XTROU ;
 ;
XTENT ;
 ;;ALIGNRGT;LEFT ALIGN TEXT IN A SPECIFIED WIDTH
 ;;NEEDSNPI;CHECK ON NEEDS NPI STATUS
 ;;HASNPI;CHECK ON WHETHER USER HAS NPI
 ;;GETNPI;GET NPI VALUE FOR USER
 ;;NPISTATS;GET NPI STATUS
 ;;GETTAXON;GET TAXONOMY DATA
