source: WorldVistAEHR/trunk/r/KERNEL-XU-A4A7-USC-XG-XLF-XNOA-XPD-XQ-XVIR-ZI-ZOSF-ZOSV-ZT-ZU-%Z-XIP--XQAB--XUC--XUR--ZIN--ZTED/XUSNPIED.m@ 613

Last change on this file since 613 was 613, checked in by George Lilly, 14 years ago

initial load of WorldVistAEHR

File size: 5.3 KB
Line 
1XUSNPIED ;FO-OAKLAND/JLI - DATA ENTRY FOR INITIAL NPI VALUES ;6/3/08 17:19
2 ;;8.0;KERNEL;**420,410,435,480**;Jul 10, 1995;Build 38
3 ;;Per VHA Directive 2004-038, this routine should not be modified
4 Q
5 ;
6SIGNON ; run at user sign-on to display message if NPI value is needed.
7 D SIGNON^XUSNPIE1
8 Q
9 ;
10CLEREDIT ; Input editing of NPI value for clerical staff - ask provider
11 N IEN,DIC,PROVNAME,DATEVAL,DESCRIP,DONE,IENS,NPIVAL1,NPIVAL2,Y,XX
12 F W ! S DIC="^VA(200,",DIC(0)="AEQ" S DIC("A")="Select Provider: " D ^DIC Q:Y'>0 S IEN=+Y D EDITNPI(IEN)
13 Q
14 ;
15USEREDIT ; Entry point for provider to enter own data
16 I $$NPISTATS(DUZ)="" W !,$C(7),"Please see your local NPI facilitator to add the NPI",! H 3 Q
17 D EDITNPI(DUZ)
18 Q
19 ;
20EDITNPI(IEN) ;
21 D EDITNPI^XUSNPIE3(IEN)
22 Q
23 ;
24EDRLNPI(IEN) ; Edit AUTHORIZES RELEASE OF NPI field
25 ; NOTE: *** This field is no longer being used, and should always be set to YES 05/13/08 tkw***
26 Q:$P($G(^VA(200,+$G(IEN),"NPI")),U,3)=1
27 N DIE,DR,DA S DIE="^VA(200,",DA=IEN,DR="41.97////1" D ^DIE
28 Q
29 ;
30CLERXMPT ;
31 D CLERXMPT^XUSNPIE1
32 Q
33 ;
34CHKGLOB() ; returns global location of TAXONOMY values also rebuilds if they are missing
35 Q $$CHKGLOB^XUSNPIDA()
36 ;
37DOUSER(XUUSER,XUGLOB) ; check user for needing an NPI status value
38 N PCLASS,XUDONE,PVAL,CODE,NPISTATS,XUVALUE,D0,EXPIRATN,I,NPIFLD,NPISUBFL
39 S NPISTATS=41.98,NPISUBFL=200.042,NPIFLD=.03
40 I $$GET1^DIQ(200,XUUSER_",",NPISTATS)'="" Q ; user is already flagged
41 S PCLASS=0,XUDONE=0 F S PCLASS=$O(^VA(200,XUUSER,"USC1",PCLASS)) Q:PCLASS'>0 S D0=^(PCLASS,0) D Q:XUDONE
42 . S EXPIRATN=$P(D0,U,3)>0 I EXPIRATN Q
43 . S PVAL=$P(D0,U),CODE=$$GET1^DIQ(8932.1,PVAL_",",6) I CODE'="",$D(@XUGLOB@(CODE)) D S XUDONE=1 Q
44 . . S XUVALUE="N" N NPIVAL F I=1:1 S NPIVAL=$$GET1^DIQ(NPISUBFL,I_","_XUUSER_",",NPIFLD) Q:NPIVAL="" S XUVALUE="D" Q
45 . . N XUFDA S XUFDA(200,XUUSER_",",NPISTATS)=XUVALUE
46 . . D FILE^DIE("","XUFDA")
47 . . Q
48 . Q
49 Q
50 ;
51CBOLIST ; list ^ delimited output to CBO exchange mail group.
52 N DATE,DOMAIN,ADDRESS,STATNAME,COUNT,GLOBLOC,GLOBOUT
53 N IEN,NPI,PROVNAME,TAXDESCR,TAXONOMY,STATION,STATUS,OPTION
54 I '$$PROD^XUPROD() Q ; messages from production systems only
55 S DATE=(1700+$E(DT,1,3))_"-"_$E(DT,4,5)_"-"_$E(DT,6,7)
56 S DOMAIN=$G(^XTV(8989.3,1,0)),DOMAIN=$P(DOMAIN,U)
57 S STATION=$$NS^XUAF4($$KSP^XUPARAM("INST"))
58 S ADDRESS=$P(STATION,U) ;$$GET1^DIQ(4.2,DOMAIN_",",.01)
59 S STATION=$P(STATION,U,2) ;$$GET1^DIQ(4.2,DOMAIN_",",5.5)
60 S OPTION=3
61 S GLOBLOC=$$GETDATA(OPTION,0,0) ; get most of data into location specified by GLOBLOC
62 S COUNT=0,GLOBOUT=$NA(^TMP($J,"XUSNPIOUT")) K @GLOBOUT
63 S COUNT=1,@GLOBOUT@(COUNT)="--START"
64 S GLOBLOC=$NA(@GLOBLOC@(" "," "))
65 S PROVNAME="" F S PROVNAME=$O(@GLOBLOC@(PROVNAME)) Q:PROVNAME="" S IEN=0 F S IEN=$O(@GLOBLOC@(PROVNAME,IEN)) Q:IEN'>0 D
66 . S TAXDESCR="" F S TAXDESCR=$O(@GLOBLOC@(PROVNAME,IEN,TAXDESCR)) Q:TAXDESCR="" S TAXONOMY=$P(^(TAXDESCR),U,4),NPI=$P(^(TAXDESCR),U,3) D
67 . . S STATUS=$$NPISTATS(IEN)
68 . . S COUNT=COUNT+1,@GLOBOUT@(COUNT)=PROVNAME_U_STATION_U_NPI_U_TAXONOMY_U_TAXDESCR_U_DATE_U_STATUS
69 . . Q
70 . Q
71 S COUNT=COUNT+1,@GLOBOUT@(COUNT)="--END"
72 ; and generate mail message
73 N XMTEXT,XMDUZ,XMY,XMSUB
74 S XMTEXT=$E(GLOBOUT,1,$L(GLOBOUT)-1)_",",XMDUZ=0.5,XMY("VHACONPINPF@VA.GOV")=""
75 S XMSUB="NPI LIST "_DATE_" FOR "_ADDRESS_" ("_STATION_")"
76 D ^XMD
77 Q
78 ;
79PRINTOPT ;
80 D PRINTOPT^XUSNPIE2
81 Q
82GETDATA(OPTION,XUSSORT,XUSDIV) ; get data for reports for providers
83 Q $$GETDATA^XUSNPIE2(OPTION,XUSSORT,XUSDIV)
84 ;
85CHEKNPI(IEN) ; returns whether status is Needs, will check and update if not set
86 N VALUE,FDA
87 S VALUE=$E($$GET1^DIQ(200,IEN_",",41.98))
88 I VALUE="N" S FDA(200,IEN_",",41.98)="" D FILE^DIE("","FDA") S VALUE="" ; XU*8*435 JLI
89 I VALUE="",$$CHKTAXON(IEN) K FDA S FDA(200,IEN_",",41.98)="N" D FILE^DIE("","FDA") S VALUE="N"
90 Q VALUE="N"
91 ;
92NEEDSNPI(IEN) ; returns whether current status is N
93 Q $$NPISTATS(IEN)="N"
94 ;
95HASNPI(IEN) ; returns whether current status is D (Done)
96 Q $$NPISTATS(IEN)="D"
97 ;
98EXMPTNPI(IEN) ; returns whether current status is E (Exempt)
99 Q $$NPISTATS(IEN)="E"
100 ;
101NPISTATS(IEN) ; returns one letter status indicator
102 N VAL
103 S VAL=$E($$GET1^DIQ(200,IEN_",",41.98))
104 I (VAL="")!(VAL="N") S VAL=$$CHEKNPI(IEN)
105 Q $E($$GET1^DIQ(200,IEN_",",41.98))
106 ;
107GETNPI(IEN) ; returns current NPI value
108 Q $$GET1^DIQ(200,IEN_",",41.99)
109 ;
110GETTAXON(IEN,DESCRREF) ; returns Taxonomy value (X12) and sets description in DESCRREF, otherwise -1
111 N I,POINTER,TAXON
112 S TAXON=-1,DESCRREF=" "
113 ;F I=0:0 S I=$O(^VA(200,IEN,"USC1",I)) Q:I'>0 I $P(^(I,0),U,3)'>0 S POINTER=+^(0) S TAXON=$$GET1^DIQ(8932.1,POINTER_",",6),DESCRREF=$$GET1^DIQ(8932.1,POINTER_",",1) Q
114 S POINTER=+$$GET^XUA4A72(IEN) I POINTER>0 S TAXON=$$GET1^DIQ(8932.1,POINTER_",",6),DESCRREF=$$GET1^DIQ(8932.1,POINTER_",",1) ; XU*8*435 make sure active on today
115 I TAXON="" S TAXON=-1,DESCRREF=" "
116 Q TAXON
117 ;
118CHKTAXON(IEN,TAXONOMY) ; checks whether taxonomy value (X12) is in list of billable otherwise 0-1
119 N DESCRIP,XUSGLOB
120 I $G(TAXONOMY)="" S TAXONOMY=$$GETTAXON(IEN,.DESCRIP)
121 S XUSGLOB=$$CHKGLOB()
122 Q $D(@XUSGLOB@(TAXONOMY))
123 ;
124DATE10(DATE) ; returns date in mm/dd/yyyyy format
125 Q $E(DATE,4,5)_"/"_$E(DATE,6,7)_"/"_(1700+$E(DATE,1,3))
126 ;
127POSTINIT ; runs post init
128 D POSTINIT^XUSNPIE1
129 Q
130 ;
131CBOQUEUE ; queues CBO List to run on first day of month
132 D CBOQUEUE^XUSNPIE1
133 Q
134ALIGNRGT(TEXT,WIDTH) ; align text right in a specified width
135 Q $$ALIGNRGT^XUSNPIE2(TEXT,WIDTH)
Note: See TracBrowser for help on using the repository browser.