diff --git a/Packages/Kernel/Globals/14.4+TASKS.zwr b/Packages/Kernel/Globals/14.4+TASKS.zwr index e24fa8de223..316b1683efd 100644 --- a/Packages/Kernel/Globals/14.4+TASKS.zwr +++ b/Packages/Kernel/Globals/14.4+TASKS.zwr @@ -1,6 +1,6 @@ OSEHRA ZGO Export: TASKS -29-AUG-2019 23:35:36 ZWR -^%ZTSK(-1)=5190 +30-AUG-2019 00:26:03 ZWR +^%ZTSK(-1)=5194 ^%ZTSK(0)="TASKS^14.4^5020" ^%ZTSK(1001,0)="TASK^XMXBULL^16^^63957,36927^63957,36927^R^^^PATCH,USER^PLA^PLA^ZTDESC^^" ^%ZTSK(1001,.02)="^PLA^^" @@ -49511,6 +49511,47 @@ OSEHRA ZGO Export: TASKS ^%ZTSK(5190,.3,"DUZ(",0)="@" ^%ZTSK(5190,.3,"XQSCH")=8 ^%ZTSK(5190,.3,"XQY")=9891 +^%ZTSK(5191,0)="HOUR^XUTMHR^.5^^65255,1207^65255,1207^R^^^POSTMASTER^VISTA^VISTA^ZTDESC^^" +^%ZTSK(5191,.02)="^VISTA^^" +^%ZTSK(5191,.03)="Taskman Hourly Job" +^%ZTSK(5191,.04)=5638033207 +^%ZTSK(5191,.1)="B^65255,1267^Task's volume set not listed in index.^^^^^^" +^%ZTSK(5191,.2)="" +^%ZTSK(5191,.21)="" +^%ZTSK(5191,.25)="" +^%ZTSK(5192,0)="ZTSK^XQ1^.5^VISTA^65255,1267^65255,1267^O^8853^HL AUTOSTART LINK MANAGER^POSTMASTER^VISTA^VISTA^ZTDESC^VISTA^" +^%ZTSK(5192,.02)="^VISTA^^" +^%ZTSK(5192,.03)="No Description (%ZTLOAD)" +^%ZTSK(5192,.04)=5638033267 +^%ZTSK(5192,.1)="B^65255,1270^Task's volume set not listed in index.^^^^^^" +^%ZTSK(5192,.2)="" +^%ZTSK(5192,.21)="" +^%ZTSK(5192,.25)="" +^%ZTSK(5192,.3,"DUZ(",0)="@" +^%ZTSK(5192,.3,"XQSCH")=10 +^%ZTSK(5192,.3,"XQY")=8853 +^%ZTSK(5193,0)="ZTSK^XQ1^.5^VISTA^65255,1267^65255,1267^O^8412^HL TASK RESTART^POSTMASTER^VISTA^VISTA^ZTDESC^VISTA^" +^%ZTSK(5193,.02)="^VISTA^^" +^%ZTSK(5193,.03)="No Description (%ZTLOAD)" +^%ZTSK(5193,.04)=5638033267 +^%ZTSK(5193,.1)="B^65255,1272^Task's volume set not listed in index.^^^^^^" +^%ZTSK(5193,.2)="" +^%ZTSK(5193,.21)="" +^%ZTSK(5193,.25)="" +^%ZTSK(5193,.3,"DUZ(",0)="@" +^%ZTSK(5193,.3,"XQSCH")=11 +^%ZTSK(5193,.3,"XQY")=8412 +^%ZTSK(5194,0)="ZTSK^XQ1^.5^VISTA^65255,1267^65255,1267^O^9891^XOBV LISTENER STARTUP^POSTMASTER^VISTA^VISTA^ZTDESC^VISTA^" +^%ZTSK(5194,.02)="^VISTA^^" +^%ZTSK(5194,.03)="No Description (%ZTLOAD)" +^%ZTSK(5194,.04)=5638033267 +^%ZTSK(5194,.1)="B^65255,1274^Task's volume set not listed in index.^^^^^^" +^%ZTSK(5194,.2)="" +^%ZTSK(5194,.21)="" +^%ZTSK(5194,.25)="" +^%ZTSK(5194,.3,"DUZ(",0)="@" +^%ZTSK(5194,.3,"XQSCH")=8 +^%ZTSK(5194,.3,"XQY")=9891 ^%ZTSK(1082462,.1)="E^64013,39495^Interrupted While Running" ^%ZTSK(1082463,.1)="E^64013,39495^Interrupted While Running" ^%ZTSK(1082464,.1)="E^64013,39495^Interrupted While Running" diff --git a/Packages/Kernel/Globals/9.4+PACKAGE.zwr b/Packages/Kernel/Globals/9.4+PACKAGE.zwr index cc68ce43713..19f4267a664 100644 --- a/Packages/Kernel/Globals/9.4+PACKAGE.zwr +++ b/Packages/Kernel/Globals/9.4+PACKAGE.zwr @@ -1,5 +1,5 @@ OSEHRA ZGO Export: PACKAGE -29-AUG-2019 23:35:38 ZWR +30-AUG-2019 00:26:08 ZWR ^DIC(9.4,-1,"INI")="^2960819.165753" ^DIC(9.4,0)="PACKAGE^9.4I^232^144" ^DIC(9.4,0,"DD")="#" @@ -62,7 +62,7 @@ OSEHRA ZGO Export: PACKAGE ^DIC(9.4,3,22,21,1,0)="^^2^2^3051119" ^DIC(9.4,3,22,21,1,1,0)="Kernel 8.0 is the latest release of VA Kernel software. This version" ^DIC(9.4,3,22,21,1,2,0)="supersedes version 7.1." -^DIC(9.4,3,22,21,"PAH",0)="^9.4901^523^520" +^DIC(9.4,3,22,21,"PAH",0)="^9.4901^524^521" ^DIC(9.4,3,22,21,"PAH",1,0)="21^2960606^1" ^DIC(9.4,3,22,21,"PAH",1,1,0)="^^99^99^2960715^" ^DIC(9.4,3,22,21,"PAH",1,1,1,0)=" This Kernel patch is dependent on MailMan patch XM*7.1*24. Both" @@ -15161,6 +15161,11 @@ OSEHRA ZGO Export: PACKAGE ^DIC(9.4,3,22,21,"PAH",523,1,1,0)="Kernel patch XU*8*693. " ^DIC(9.4,3,22,21,"PAH",523,1,2,0)="This patch edits Bulletins." ^DIC(9.4,3,22,21,"PAH",523,1,3,0)="Please refer to the description in Forum Patch Module for details." +^DIC(9.4,3,22,21,"PAH",524,0)="711^3190830.002129^17" +^DIC(9.4,3,22,21,"PAH",524,1,0)="^^3^3^3190830" +^DIC(9.4,3,22,21,"PAH",524,1,1,0)="KERNEL VISTA ENHANCEMENTS - PPMS PIE SUPPORT" +^DIC(9.4,3,22,21,"PAH",524,1,2,0)="Refer to patch XU*8.0*711 in the FORUM Patch Module for a complete" +^DIC(9.4,3,22,21,"PAH",524,1,3,0)="description." ^DIC(9.4,3,22,21,"PAH","B",2,10)="" ^DIC(9.4,3,22,21,"PAH","B",7,33)="" ^DIC(9.4,3,22,21,"PAH","B",14,22)="" @@ -15237,6 +15242,7 @@ OSEHRA ZGO Export: PACKAGE ^DIC(9.4,3,22,21,"PAH","B",698,513)="" ^DIC(9.4,3,22,21,"PAH","B",703,521)="" ^DIC(9.4,3,22,21,"PAH","B",705,517)="" +^DIC(9.4,3,22,21,"PAH","B",711,524)="" ^DIC(9.4,3,22,21,"PAH","B",10001,503)="" ^DIC(9.4,3,22,21,"PAH","B",10002,512)="" ^DIC(9.4,3,22,21,"PAH","B",10004,516)="" diff --git a/Packages/Kernel/Globals/9.6+BUILD.zwr b/Packages/Kernel/Globals/9.6+BUILD.zwr index 29d0ea390e0..bb6fa3719ae 100644 --- a/Packages/Kernel/Globals/9.6+BUILD.zwr +++ b/Packages/Kernel/Globals/9.6+BUILD.zwr @@ -1,6 +1,6 @@ OSEHRA ZGO Export: BUILD -29-AUG-2019 23:37:54 ZWR -^XPD(9.6,0)="BUILD^9.6I^11339^10979" +30-AUG-2019 00:28:37 ZWR +^XPD(9.6,0)="BUILD^9.6I^11340^10980" ^XPD(9.6,1,0)="KERNEL - VIRGIN INSTALL 8.0^3^0^2950703^n" ^XPD(9.6,1,1,0)="^^3^3^2950703^" ^XPD(9.6,1,1,1,0)="Install files needed to support Kernel 8.0. This package is" @@ -1223875,6 +1223875,86 @@ OSEHRA ZGO Export: BUILD ^XPD(9.6,11339,"REQB",0)="^9.611^1^1" ^XPD(9.6,11339,"REQB",1,0)="XU*8.0*514^1" ^XPD(9.6,11339,"REQB","B","XU*8.0*514",1)="" +^XPD(9.6,11340,0)="XU*8.0*711^3^0^3190619^y" +^XPD(9.6,11340,1,0)="^9.61A^3^3^3190614^^^^" +^XPD(9.6,11340,1,1,0)="KERNEL VISTA ENHANCEMENTS - PPMS PIE SUPPORT" +^XPD(9.6,11340,1,2,0)="Refer to patch XU*8.0*711 in the FORUM Patch Module for a complete" +^XPD(9.6,11340,1,3,0)="description." +^XPD(9.6,11340,4,0)="^9.64PA^^" +^XPD(9.6,11340,6)="^551" +^XPD(9.6,11340,6.3)=9 +^XPD(9.6,11340,"KRN",0)="^9.67PA^1.5^24" +^XPD(9.6,11340,"KRN",.4,0)=.4 +^XPD(9.6,11340,"KRN",.401,0)=.401 +^XPD(9.6,11340,"KRN",.402,0)=.402 +^XPD(9.6,11340,"KRN",.403,0)=.403 +^XPD(9.6,11340,"KRN",.5,0)=.5 +^XPD(9.6,11340,"KRN",.84,0)=.84 +^XPD(9.6,11340,"KRN",1.5,0)=1.5 +^XPD(9.6,11340,"KRN",1.6,0)=1.6 +^XPD(9.6,11340,"KRN",1.61,0)=1.61 +^XPD(9.6,11340,"KRN",1.62,0)=1.62 +^XPD(9.6,11340,"KRN",3.6,0)=3.6 +^XPD(9.6,11340,"KRN",3.8,0)=3.8 +^XPD(9.6,11340,"KRN",9.2,0)=9.2 +^XPD(9.6,11340,"KRN",9.8,0)=9.8 +^XPD(9.6,11340,"KRN",9.8,"NM",0)="^9.68A^4^4" +^XPD(9.6,11340,"KRN",9.8,"NM",1,0)="XUMVINPU^^0^B124825166" +^XPD(9.6,11340,"KRN",9.8,"NM",2,0)="XUMVIENU^^0^B277994868" +^XPD(9.6,11340,"KRN",9.8,"NM",3,0)="XUMVINPA^^0^B8194513" +^XPD(9.6,11340,"KRN",9.8,"NM",4,0)="XUMVIDTA^^0^B9059477" +^XPD(9.6,11340,"KRN",9.8,"NM","B","XUMVIDTA",4)=" " +^XPD(9.6,11340,"KRN",9.8,"NM","B","XUMVIENU",2)=" " +^XPD(9.6,11340,"KRN",9.8,"NM","B","XUMVINPA",3)=" " +^XPD(9.6,11340,"KRN",9.8,"NM","B","XUMVINPU",1)=" " +^XPD(9.6,11340,"KRN",19,0)=19 +^XPD(9.6,11340,"KRN",19.1,0)=19.1 +^XPD(9.6,11340,"KRN",101,0)=101 +^XPD(9.6,11340,"KRN",409.61,0)=409.61 +^XPD(9.6,11340,"KRN",771,0)=771 +^XPD(9.6,11340,"KRN",779.2,0)=779.2 +^XPD(9.6,11340,"KRN",870,0)=870 +^XPD(9.6,11340,"KRN",8989.51,0)=8989.51 +^XPD(9.6,11340,"KRN",8989.52,0)=8989.52 +^XPD(9.6,11340,"KRN",8994,0)=8994 +^XPD(9.6,11340,"KRN",8994,"NM",0)="^9.68A^3^3" +^XPD(9.6,11340,"KRN",8994,"NM",1,0)="XUS MVI NEW PERSON GET^^0" +^XPD(9.6,11340,"KRN",8994,"NM",2,0)="XUS MVI NEW PERSON UPDATE^^0" +^XPD(9.6,11340,"KRN",8994,"NM",3,0)="XUS MVI ENRICH NEW PERSON^^0" +^XPD(9.6,11340,"KRN",8994,"NM","B","XUS MVI ENRICH NEW PERSON",3)=" " +^XPD(9.6,11340,"KRN",8994,"NM","B","XUS MVI NEW PERSON GET",1)=" " +^XPD(9.6,11340,"KRN",8994,"NM","B","XUS MVI NEW PERSON UPDATE",2)=" " +^XPD(9.6,11340,"KRN","B",.4,.4)=" " +^XPD(9.6,11340,"KRN","B",.401,.401)=" " +^XPD(9.6,11340,"KRN","B",.402,.402)=" " +^XPD(9.6,11340,"KRN","B",.403,.403)=" " +^XPD(9.6,11340,"KRN","B",.5,.5)=" " +^XPD(9.6,11340,"KRN","B",.84,.84)=" " +^XPD(9.6,11340,"KRN","B",1.5,1.5)=" " +^XPD(9.6,11340,"KRN","B",1.6,1.6)=" " +^XPD(9.6,11340,"KRN","B",1.61,1.61)=" " +^XPD(9.6,11340,"KRN","B",1.62,1.62)=" " +^XPD(9.6,11340,"KRN","B",3.6,3.6)=" " +^XPD(9.6,11340,"KRN","B",3.8,3.8)=" " +^XPD(9.6,11340,"KRN","B",9.2,9.2)=" " +^XPD(9.6,11340,"KRN","B",9.8,9.8)=" " +^XPD(9.6,11340,"KRN","B",19,19)=" " +^XPD(9.6,11340,"KRN","B",19.1,19.1)=" " +^XPD(9.6,11340,"KRN","B",101,101)=" " +^XPD(9.6,11340,"KRN","B",409.61,409.61)=" " +^XPD(9.6,11340,"KRN","B",771,771)=" " +^XPD(9.6,11340,"KRN","B",779.2,779.2)=" " +^XPD(9.6,11340,"KRN","B",870,870)=" " +^XPD(9.6,11340,"KRN","B",8989.51,8989.51)=" " +^XPD(9.6,11340,"KRN","B",8989.52,8989.52)=" " +^XPD(9.6,11340,"KRN","B",8994,8994)=" " +^XPD(9.6,11340,"QDEF")="^^^^NO^^^^NO^^NO" +^XPD(9.6,11340,"QUES",0)="^9.62^^" +^XPD(9.6,11340,"REQB",0)="^9.611^2^2" +^XPD(9.6,11340,"REQB",1,0)="XU*8.0*691^2" +^XPD(9.6,11340,"REQB",2,0)="XU*8.0*705^2" +^XPD(9.6,11340,"REQB","B","XU*8.0*691",1)=" " +^XPD(9.6,11340,"REQB","B","XU*8.0*705",2)=" " ^XPD(9.6,"B","A4A7*1.01*10",1312)="" ^XPD(9.6,"B","A4A7*1.01*11",1900)="" ^XPD(9.6,"B","A4A7*1.01*9",339)="" @@ -1234673,6 +1234753,7 @@ OSEHRA ZGO Export: BUILD ^XPD(9.6,"B","XU*8.0*703",11225)="" ^XPD(9.6,"B","XU*8.0*705",11124)="" ^XPD(9.6,"B","XU*8.0*71",1362)="" +^XPD(9.6,"B","XU*8.0*711",11340)="" ^XPD(9.6,"B","XU*8.0*72",1559)="" ^XPD(9.6,"B","XU*8.0*73",1360)="" ^XPD(9.6,"B","XU*8.0*74",1529)="" @@ -1235368,6 +1235449,7 @@ OSEHRA ZGO Export: BUILD ^XPD(9.6,"C",3,11225)="" ^XPD(9.6,"C",3,11238)="" ^XPD(9.6,"C",3,11339)="" +^XPD(9.6,"C",3,11340)="" ^XPD(9.6,"C",4,4)="" ^XPD(9.6,"C",4,11)="" ^XPD(9.6,"C",4,12)="" diff --git a/Packages/Kernel/Globals/9.7+INSTALL.zwr b/Packages/Kernel/Globals/9.7+INSTALL.zwr index 2c4692ba071..a628ed571ab 100644 --- a/Packages/Kernel/Globals/9.7+INSTALL.zwr +++ b/Packages/Kernel/Globals/9.7+INSTALL.zwr @@ -1,6 +1,6 @@ OSEHRA ZGO Export: INSTALL -29-AUG-2019 23:38:17 ZWR -^XPD(9.7,0)="INSTALL^9.7I^11058^10916" +30-AUG-2019 00:29:01 ZWR +^XPD(9.7,0)="INSTALL^9.7I^11059^10917" ^XPD(9.7,1,0)="KERNEL - VIRGIN INSTALL 8.0^^2960531.10393^1^1^^^^3^0^.5" ^XPD(9.7,1,1)="2960604.094043^2960604.094043^2960604.094047" ^XPD(9.7,1,2)="Kernel 8.0 from ISC-SF by RSD ;Created on Jul 10, 1995@09:28:18" @@ -849347,6 +849347,65 @@ OSEHRA ZGO Export: INSTALL ^XPD(9.7,11058,"RTN","B","XU8P693",1)="" ^XPD(9.7,11058,"RTN","B","XUSTERM",2)="" ^XPD(9.7,11058,"RTN","B","XUSTERM1",3)="" +^XPD(9.7,11059,0)="XU*8.0*711^3^3190830.002108^11059^1^^0^0XU*8.0*711^3^0^17" +^XPD(9.7,11059,1)="3190830.002129^3190830.002129^3190830.002129^3190619" +^XPD(9.7,11059,2)="Extracted from mail message ;Created on " +^XPD(9.7,11059,6)="^551" +^XPD(9.7,11059,"INI",0)="^9.713^1^1" +^XPD(9.7,11059,"INI",1,0)="XPD PREINSTALL COMPLETED^3190830.002129" +^XPD(9.7,11059,"INI","B","XPD PREINSTALL COMPLETED",1)="" +^XPD(9.7,11059,"INIT",0)="^9.716^1^1" +^XPD(9.7,11059,"INIT",1,0)="XPD POSTINSTALL COMPLETED^3190830.002129" +^XPD(9.7,11059,"INIT","B","XPD POSTINSTALL COMPLETED",1)="" +^XPD(9.7,11059,"KRN",0)="^9.715P^8994^1" +^XPD(9.7,11059,"KRN",8994,0)="8994^3190830.002129^16" +^XPD(9.7,11059,"KRN","AC",16,8994)="" +^XPD(9.7,11059,"KRN","B",8994,8994)="" +^XPD(9.7,11059,"MES",0)="^^24^24^3190830" +^XPD(9.7,11059,"MES",1,0)=" " +^XPD(9.7,11059,"MES",2,0)=" Install Started for XU*8.0*711 : " +^XPD(9.7,11059,"MES",3,0)=" Aug 30, 2019@00:21:29" +^XPD(9.7,11059,"MES",4,0)=" " +^XPD(9.7,11059,"MES",5,0)="Build Distribution Date: Jun 19, 2019" +^XPD(9.7,11059,"MES",6,0)=" " +^XPD(9.7,11059,"MES",7,0)=" Installing Routines:" +^XPD(9.7,11059,"MES",8,0)=" Aug 30, 2019@00:21:29" +^XPD(9.7,11059,"MES",9,0)=" " +^XPD(9.7,11059,"MES",10,0)=" Installing PACKAGE COMPONENTS: " +^XPD(9.7,11059,"MES",11,0)=" " +^XPD(9.7,11059,"MES",12,0)=" Installing REMOTE PROCEDURE" +^XPD(9.7,11059,"MES",13,0)=" Aug 30, 2019@00:21:29" +^XPD(9.7,11059,"MES",14,0)=" " +^XPD(9.7,11059,"MES",15,0)=" Updating Routine file..." +^XPD(9.7,11059,"MES",16,0)=" " +^XPD(9.7,11059,"MES",17,0)=" Updating KIDS files..." +^XPD(9.7,11059,"MES",18,0)=" " +^XPD(9.7,11059,"MES",19,0)=" XU*8.0*711 Installed. " +^XPD(9.7,11059,"MES",20,0)=" Aug 30, 2019@00:21:29" +^XPD(9.7,11059,"MES",21,0)=" " +^XPD(9.7,11059,"MES",22,0)=" Not a production UCI" +^XPD(9.7,11059,"MES",23,0)=" " +^XPD(9.7,11059,"MES",24,0)=" NO Install Message sent " +^XPD(9.7,11059,"QUES",0)="^9.701^2^2" +^XPD(9.7,11059,"QUES",1,0)="XPI1" +^XPD(9.7,11059,"QUES",1,1)=0 +^XPD(9.7,11059,"QUES",1,"A")="Want KIDS to INHIBIT LOGONs during the install" +^XPD(9.7,11059,"QUES",1,"B")="NO" +^XPD(9.7,11059,"QUES",2,0)="XPZ1" +^XPD(9.7,11059,"QUES",2,1)=0 +^XPD(9.7,11059,"QUES",2,"A")="Want to DISABLE Scheduled Options, Menu Options, and Protocols" +^XPD(9.7,11059,"QUES",2,"B")="NO" +^XPD(9.7,11059,"QUES","B","XPI1",1)="" +^XPD(9.7,11059,"QUES","B","XPZ1",2)="" +^XPD(9.7,11059,"RTN",0)="^9.704A^4^4" +^XPD(9.7,11059,"RTN",1,0)="XUMVIDTA" +^XPD(9.7,11059,"RTN",2,0)="XUMVIENU" +^XPD(9.7,11059,"RTN",3,0)="XUMVINPA" +^XPD(9.7,11059,"RTN",4,0)="XUMVINPU" +^XPD(9.7,11059,"RTN","B","XUMVIDTA",1)="" +^XPD(9.7,11059,"RTN","B","XUMVIENU",2)="" +^XPD(9.7,11059,"RTN","B","XUMVINPA",3)="" +^XPD(9.7,11059,"RTN","B","XUMVINPU",4)="" ^XPD(9.7,"ASP",1,1,1)="" ^XPD(9.7,"ASP",1,2,2)="" ^XPD(9.7,"ASP",3,1,3)="" @@ -860263,6 +860322,7 @@ OSEHRA ZGO Export: INSTALL ^XPD(9.7,"ASP",11056,1,11056)="" ^XPD(9.7,"ASP",11057,1,11057)="" ^XPD(9.7,"ASP",11058,1,11058)="" +^XPD(9.7,"ASP",11059,1,11059)="" ^XPD(9.7,"B","A4A7*1.01*10",1037)="" ^XPD(9.7,"B","A4A7*1.01*11",1611)="" ^XPD(9.7,"B","A4A7*1.01*11",1631)="" @@ -870998,6 +871058,7 @@ OSEHRA ZGO Export: INSTALL ^XPD(9.7,"B","XU*8.0*703",10944)="" ^XPD(9.7,"B","XU*8.0*705",10843)="" ^XPD(9.7,"B","XU*8.0*71",1089)="" +^XPD(9.7,"B","XU*8.0*711",11059)="" ^XPD(9.7,"B","XU*8.0*72",1287)="" ^XPD(9.7,"B","XU*8.0*73",1084)="" ^XPD(9.7,"B","XU*8.0*74",1257)="" diff --git a/Packages/Kernel/Globals/9.8+ROUTINE.zwr b/Packages/Kernel/Globals/9.8+ROUTINE.zwr index 9752e1bfc2a..34529da0477 100644 --- a/Packages/Kernel/Globals/9.8+ROUTINE.zwr +++ b/Packages/Kernel/Globals/9.8+ROUTINE.zwr @@ -1,6 +1,6 @@ OSEHRA ZGO Export: ROUTINE -29-AUG-2019 23:35:45 ZWR -^DIC(9.8,0)="ROUTINE^9.8^36148^29204" +30-AUG-2019 00:26:16 ZWR +^DIC(9.8,0)="ROUTINE^9.8^36150^29206" ^DIC(9.8,0,"DD")="#" ^DIC(9.8,0,"DEL")="#" ^DIC(9.8,0,"GL")="^DIC(9.8," @@ -113697,7 +113697,7 @@ OSEHRA ZGO Export: ROUTINE ^DIC(9.8,35554,0)="LR500PO^R" ^DIC(9.8,35554,4.1)=3180811.075959 ^DIC(9.8,35555,0)="XUMVINPU^R" -^DIC(9.8,35555,4.1)=3180811.114154 +^DIC(9.8,35555,4.1)=3190830.002129 ^DIC(9.8,35556,0)="TIU315P^R" ^DIC(9.8,35556,4.1)=3180811.135854 ^DIC(9.8,35557,0)="PSS224PI^R" @@ -114219,7 +114219,7 @@ OSEHRA ZGO Export: ROUTINE ^DIC(9.8,35815,0)="PSBORT^R" ^DIC(9.8,35815,4.1)=3190315.003834 ^DIC(9.8,35816,0)="XUMVIDTA^R" -^DIC(9.8,35816,4.1)=3190315.061414 +^DIC(9.8,35816,4.1)=3190830.002129 ^DIC(9.8,35817,0)="GMRC110P^R" ^DIC(9.8,35817,4.1)=3190315.070255 ^DIC(9.8,35818,0)="FH43P^R" @@ -114884,6 +114884,10 @@ OSEHRA ZGO Export: ROUTINE ^DIC(9.8,36147,4.1)=3190829.201416 ^DIC(9.8,36148,0)="XU8P693^R" ^DIC(9.8,36148,4.1)=3190829.233052 +^DIC(9.8,36149,0)="XUMVIENU^R" +^DIC(9.8,36149,4.1)=3190830.002129 +^DIC(9.8,36150,0)="XUMVINPA^R" +^DIC(9.8,36150,4.1)=3190830.002129 ^DIC(9.8,"%",0)="^1.005^1^1" ^DIC(9.8,"%",1,0)="XU" ^DIC(9.8,"%","B","XU",1)="" @@ -143199,6 +143203,8 @@ OSEHRA ZGO Export: ROUTINE ^DIC(9.8,"B","XUMFXR",26745)="" ^DIC(9.8,"B","XUMPI",30831)="" ^DIC(9.8,"B","XUMVIDTA",35816)="" +^DIC(9.8,"B","XUMVIENU",36149)="" +^DIC(9.8,"B","XUMVINPA",36150)="" ^DIC(9.8,"B","XUMVINPU",35555)="" ^DIC(9.8,"B","XUOAAHL7",23195)="" ^DIC(9.8,"B","XUOAAUTL",26981)="" diff --git a/Packages/Kernel/Routines/XUMVIDTA.m b/Packages/Kernel/Routines/XUMVIDTA.m index 4a5521281ff..0f1ce7d9a08 100644 --- a/Packages/Kernel/Routines/XUMVIDTA.m +++ b/Packages/Kernel/Routines/XUMVIDTA.m @@ -1,5 +1,5 @@ -XUMVIDTA ;MVI/CKN - MVI New Person Data Analysis ; 10/9/18 9:13am - ;;8.0;KERNEL;**705**;Jul 10, 1995;Build 1 +XUMVIDTA ;MVI/CKN - MVI New Person Data Analysis ; 6/18/19 2:52pm + ;;8.0;KERNEL;**705,711**;Jul 10, 1995;Build 9 Q EP(RETURN,SEL,ACTSEL) ; ;RPC - XUS MVI NEW PERSON DATA @@ -38,6 +38,7 @@ .;All Active and Inactive New Person .I SEL=1 D ..S NONACT=$$NONACT(.ARR) I NONACT S TOTNACT=TOTNACT+1 Q + ..I '$$ACT(.ARR) Q ..S TOTACT=TOTACT+1 ..D GETACT(ACTSEL,.ARR) ; @@ -65,7 +66,8 @@ S ARR("TERMDT")=$G(NPDATA(200,XUDUZ,9.2,"I")) Q 0 ACT(ARR) ; ;Active Person - not Disuser=Y and/or no Termination date. - I $G(ARR("DISUSR"))'=1,($G(ARR("TERMDT"))=""!($G(ARR("TERMDT"))>DT)) Q 1 + ;**711 Story 977780 (ckn) - Add check for primary option assigned. + I $G(ARR("DISUSR"))'=1,($G(ARR("TERMDT"))=""!($G(ARR("TERMDT"))>DT)),($G(ARR("PRIMOPT"))'="") Q 1 Q 0 GETACT(ACTSEL,ARR) ; ;Aggregate total Active records has a SECID value diff --git a/Packages/Kernel/Routines/XUMVIENU.m b/Packages/Kernel/Routines/XUMVIENU.m new file mode 100644 index 00000000000..ac4039fc4e9 --- /dev/null +++ b/Packages/Kernel/Routines/XUMVIENU.m @@ -0,0 +1,508 @@ +XUMVIENU ;MVI/CKN,MKO - Master Veteran Index Enrich New Person ;5 Jun 2019 8:06 PM + ;;8.0;KERNEL;**711**;Jul 10, 1995;Build 9 + ;Per VA Directive 6402, this routine should not be modified. + ;**711,Story 977838 (mko/ckn): New routine + ;Entry point: UPDATE^XUMVIENU(XURET,.XUARR,XUFLAG) + ; called from rpc: XUS MVI ENRICH NEW PERSON + ; + ; Input: + ; XUARR(subscript)=value to update + ; XUFLAG = "A" : if RPC is being called to add a record to the New Person file + ; "U" : if RPC is being called to edit an existing New Person file record. + ; + ; Return Parameter: + ; On success: + ; DUZ of New Person File entry edited or added + ; Returned if there were no issues adding or editing the entry. + ; + ; DUZ^-1^errorMessage + ; Returned if entry was edited, but some data was not valid and could + ; not be filed. + ; + ; On failure: + ; -1^errorMessage + ; Returned for example if required data was not passed, entry could + ; not be added when FLAG="A", or entry could not be found based on + ; the NPI when FLAG="U". + ; +UPDATE(XURET,XUARR,XUFLAG) ;RPC to enrich New Pperson file entry + N XUDBSEQ + S XUDBSEQ=$$RECORD(.XUARR,$G(XUFLAG)) + D PROC(.XURET,.XUARR,.XUFLAG) + D RETURN(XUDBSEQ,XURET) + Q + ; +PROC(XURET,XUARR,XUFLAG) ;Main code for RPC + N FDA,OLDTDATE,XUDUZ + K XURET + ; + ;Check inputs + S XURET=$$CHKINPUT(.XUARR,.XUFLAG) + Q:XURET<0 + ; + ;Add or get New Person IEN in XUDUZ + S XURET="" + I $G(XUFLAG)="A" D + . ;Call entry point to add the record + . D:$G(XUARR("SubjectOrgan"))=""!($G(XUARR("SubjectOrganID"))="") SUBJDEF(.XUARR) + . S XUDUZ=$$ADDUSER^XUMVINPA(.XUARR) + . I XUDUZ<0 S XURET=XUDUZ ;If error, we'll return -1^errorMessage + . E I $P(XUDUZ,U,3)=1 S XUDUZ=+XUDUZ ;If record was added, set XUDUZ to new IEN + . E S XURET=+XUDUZ ;If record was found, not added, we'll just return DUZ -- no edit will take place + E D + . ;Lookup user based on NPI + . ;S XATTRIB(8)=XUARR("NPI") ; NPI + . ;S XUDUZ=$$FINDUSER^XUESSO2(.XATTRIB) ; find user based on NPI ; returns -1^Not authorized if DUZ("LOA")<2 + . S XUDUZ=$O(^VA(200,"ANPI",XUARR("NPI"),0)) + . S:XUDUZ'>0 XURET="-1^User with NPI "_XUARR("NPI")_" not found." + ; + ;If add or lookup above set XURET, we're done + Q:XURET]"" + ; + ;Update the NAME first. (Within a FILE^DIE call, triggers on the .01 that in turn call FILE^DIE + ;may cause the Filer flag to change from "E", to "".) + I $G(XUFLAG)'="A",$D(XUARR("NAME"))#2 D + . N NAME + . S NAME=$P($G(XUARR("NAME")),"|",5) + . S:NAME="" NAME=$$FMNAME^HLFNC($G(XUARR("NAME")),"|") + . I NAME]"" S FDA(200,+XUDUZ_",",.01)=NAME D FILER(.FDA,"E",.XURET) + ; + ;Set up FDA + D SETFDA(XUDUZ,.XUARR,.FDA) + ; + ;Remove Termination Date from FDA if it's in the future + D TERMDATE(.FDA,.XURES) + ; + ;Save the original Termination Date + S OLDTDATE=$P($G(^VA(200,XUDUZ,0)),U,11) + ; + ;Call the Filer + D FILER(.FDA,"E",.XURET) + ; + ;If Termination Date was added or deleted, remove or add Security keys PROVIDER and XUORES + D SECKEYS(XUDUZ,OLDTDATE,.XURET) + ; + ;File the Person Class data + D PERSCLAS(XUDUZ,.XUARR,.XURET) + ; + ;File the DEA data + I $$PATCH^XPDUTL("XU*8.0*688"),$$VFIELD^DILFD(200,53.21),$$VFILE^DILFD(8991.9) D + . ;File NEW DEA #'S in multiple and add/edit entries in File #8991.9 + . D NEWDEA(XUDUZ,.XUARR,.XURET) + . ;File first NEW DEA data into single-valued fields of NP file + . D NPDEA(XUDUZ,.XUARR,.XURET) + E D + . ;File first valid DEA # into file (NEW DEA#'s multiple doesn't exist) + . D FIRSTDEA(XUDUZ,.XUARR,.XURET) + ; + ;Return DUZ in first piece. If errors, also return -1^errMsg in 2nd and 3rd pieces. + S XURET=XUDUZ_$S(XURET<0:U_XURET,1:"") + Q + ; +CHKINPUT(XUARR,XUFLAG) ;Check inputs + ;Returns: "-1^errorMsg" if problem; otherwise return 0 + Q:'$D(XUARR) "-1^No data passed" + Q:$G(XUARR("NPI"))="" "-1^Missing NPI" + Q:'$$CHKDGT^XUSNPI($G(XUARR("NPI"))) "-1^NPI is not valid" + Q:$G(XUARR("WHO"))="" "-1^Missing requesting Station number" + ; + S:$G(XUFLAG)="" XUFLAG="U" + Q:"^A^U^"'[(U_$G(XUFLAG)_U) "-1^Invalid flag "_XUFLAG_" was passed." + Q 0 + ; +SETFDA(IEN,XUARR,FDA) ;Set FDA from XUARR for filing into File #200 + N IENS,WHO + S WHO=$G(XUARR("WHO")) + S IENS=+IEN_"," + ; + ;DEGREE + S:$D(XUARR("DEGREE"))#2 FDA(200,IENS,10.6)=$$TRIM^XLFSTR(XUARR("DEGREE")) + ; + ;Subject Organization and ID + D:$G(XUARR("SubjectOrgan"),"")=""!($G(XUARR("SubjectOrganID"),"")="") SUBJDEF(.XUARR) + S:$D(XUARR("SubjectOrgan"))#2 FDA(200,IENS,205.2)=XUARR("SubjectOrgan") + S:$D(XUARR("SubjectOrganID"))#2 FDA(200,IENS,205.3)=XUARR("SubjectOrganID") + ; + ;GENDER + S:$D(XUARR("GENDER"))#2 FDA(200,IENS,4)=XUARR("GENDER") + ; + ;ADDRESS DATA + D:$D(XUARR("ADDRESS DATA"))#2 + . N ADDR,STR1,STR2,STR3,CITY,STATE,ZIP,OPHN,FAX + . S ADDR=XUARR("ADDRESS DATA") + . S STR1=$P(ADDR,"|"),STR2=$P(ADDR,"|",2),STR3=$P(ADDR,"|",3) + . S CITY=$P(ADDR,"|",4),STATE=$P(ADDR,"|",5),ZIP=$P(ADDR,"|",6) + . S OPHN=$P(ADDR,"|",7),FAX=$P(ADDR,"|",8) + . I $L(ZIP)=9,ZIP'["-" S ZIP=$E(ZIP,1,5)_"-"_$E(ZIP,6,9) + . S FDA(200,IENS,.111)=$E(STR1,1,$$MAXLEN(200,.111)) + . S FDA(200,IENS,.112)=$E(STR2,1,$$MAXLEN(200,.112)) + . S FDA(200,IENS,.113)=$E(STR3,1,$$MAXLEN(200,.113)) + . S FDA(200,IENS,.114)=$E(CITY,1,$$MAXLEN(200,.114)) + . S FDA(200,IENS,.115)=$$STATEIEN(STATE) + . S FDA(200,IENS,.116)=ZIP + . S FDA(200,IENS,.132)=OPHN + . S FDA(200,IENS,.136)=FAX + ; + ;Tax ID + S:$D(XUARR("TaxID"))#2 FDA(200,IENS,53.92)=XUARR("TaxID") + ; + ;Termination + S:$D(XUARR("Termination"))#2 FDA(200,IENS,9.2)=XUARR("Termination") + ;Inactivate + S:$D(XUARR("Inactivate"))#2 FDA(200,IENS,53.4)=XUARR("Inactivate") + ; + ;Remarks + I $G(XUARR("Remarks"))="",WHO="200PIEV",$P($G(^VA(200,+IEN,"PS")),U,9)="" S XUARR("Remarks")="NON-VA PROVIDER" + S:$D(XUARR("Remarks"))#2 FDA(200,IENS,53.9)=$E(XUARR("Remarks"),1,$$MAXLEN(200,53.9)) + ; + ;Title + I $G(XUARR("Title"))="",WHO="200PIEV",$P($G(^VA(200,+IEN,0)),U,9)="" S XUARR("Title")="NON-VA PROVIDER" + D:$D(XUARR("Title"))#2 + . ;Add Title to TITLE file (#3.1) if not already there + . N DIERR,DIHELP,DIMSG,XUMSG + . S XUARR("Title")=$E($$UP^XLFSTR(XUARR("Title")),1,$$MAXLEN(200,8)) + . D:$$FIND1^DIC(3.1,"","X",XUARR("Title"),"","","XUMSG")'>0 + .. N TITLEFDA + .. S TITLEFDA(3.1,"+1,",.01)=XUARR("Title") + .. D UPDATER(.TITLEFDA,"E",.XURET) + . S FDA(200,IENS,8)=XUARR("Title") + ; + ;Authorized to Write Med Orders + D:$D(XUARR("AuthWriteMedOrders"))#2 + . S VAL=$$UP^XLFSTR(XUARR("AuthWriteMedOrders")) S:VAL=0!(VAL="N")!(VAL="NO") VAL="" + . S FDA(200,IENS,53.1)=VAL + ; + ;Provider Class + S:$D(XUARR("ProviderClass"))#2 FDA(200,IENS,53.5)=XUARR("ProviderClass") + ; + ;Non VA Prescriber + I WHO="200PIEV",$G(XUARR("NonVAPrescriber"))="" S FDA(200,IENS,53.91)=1 + E S:$D(XUARR("NonVAPrescriber"))#2 FDA(200,IENS,53.91)=XUARR("NonVAPrescriber") + ; + ;Provider Type + D:$D(XUARR("ProviderType"))#2 + . N PROVTYPE + . S PROVTYPE=$P(XUARR("ProviderType"),"|") + . S:PROVTYPE="" PROVTYPE=$P(XUARR("ProviderType"),"|",2) + . S FDA(200,IENS,53.6)=PROVTYPE + ; + ;SECID + S:$D(XUARR("SECID"))#2 FDA(200,IENS,205.1)=XUARR("SECID") + ;Unique User ID + S:$D(XUARR("UniqueUserID"))#2 FDA(200,IENS,205.4)=XUARR("UniqueUserID") + ;ADUPN (Email) + S:$D(XUARR("ADUPN"))#2 FDA(200,IENS,205.5)=XUARR("ADUPN") + ;EMAIL ADDRESS + S:$D(XUARR("EMAIL"))#2 FDA(200,IENS,.151)=XUARR("EMAIL") + ;Network Username + S:$D(XUARR("NTUSERNAME"))#2 FDA(200,IENS,501.1)=XUARR("NTUSERNAME") + Q + ; +SUBJDEF(XUARR) ;Set default Subject Organization and ID + S XUARR("SubjectOrgan")="Department Of Veterans Affairs" + S XUARR("SubjectOrganID")="urn:oid:2.16.840.1.113883.4.349" + Q + ; +TERMDATE(FDA,XURES) ;Remove Termination Date from FDA if it's in the future, + ;or if Termination Date is passed but user has a Primary Menu, and return an error message + N IENS,TDATE + S IENS=$O(FDA(200,"")) Q:IENS="" + Q:"@"[$G(FDA(200,IENS,9.2)) + ; + ;Get internal form + S TDATE=$$GETINT(200,9.2,FDA(200,IENS,9.2)) Q:TDATE=U + ; + I $P($G(^VA(200,+IENS,201)),U)]"" D Q + . D ADDERR(.XURET,"User has a PRIMARY MENU and cannot be terminated.") + . K FDA(200,IENS,9.2) + ; + ;Remove from FDA if it's a future date, and add an error message + D:TDATE>DT + . D ADDERR(.XURET,"TERMINATION DATE '"_FDA(200,IENS,9.2)_"' is in the future.") + . K FDA(200,IENS,9.2) + Q + ; +SECKEYS(XUDUZ,OLDTDATE,XURET) ;Add or remove Security Keys PROVIDER and XUORES + ;based on whether Termination Date is deleted or created + N KEY,KEYIEN,NEWTDATE + S XUDUZ=+$G(XUDUZ),OLDTDATE=$G(OLDTDATE) + S NEWTDATE=$P($G(^VA(200,XUDUZ,0)),U,11) + Q:$G(OLDTDATE)=NEWTDATE + ; + F KEY="PROVIDER","XUORES" D + . S KEYIEN=$O(^DIC(19.1,"B",KEY,0)) Q:KEYIEN'>0 + . I OLDTDATE="",NEWTDATE]"" D + .. ;Delete the key + .. N DA,DIK + .. S DA=$O(^VA(200,XUDUZ,51,"B",KEYIEN,0)) Q:DA'>0 + .. S DA(1)=XUDUZ,DIK="^VA(200,"_XUDUZ_",51," + .. D ^DIK + . E I OLDTDATE]"",NEWTDATE="" D + .. ;Add the key + .. N IENS,FDA + .. Q:$D(^VA(200,XUDUZ,51,"B",KEYIEN,0)) + .. S IENS="+1,"_XUDUZ_"," + .. S FDA(200.051,IENS,.01)=KEYIEN ;key + .. S FDA(200.051,IENS,1)=$G(DUZ) ;given by + .. S FDA(200.051,IENS,2)=DT ;date given + .. D UPDATER(.FDA,"",.XURET) + Q + ; +PERSCLAS(XUDUZ,XUARR,XURET) ;Update PERSON CLASS multiple + N CNT,CURVAL,D0,FDA,IEN,IENS,NEWVAL,PCIEN,VACODE,X12CODE + S CNT=0 F S CNT=$O(XUARR("PersonClass",CNT)) Q:'CNT D + . S X12CODE=$G(XUARR("PersonClass",CNT,"PersonClass")) Q:X12CODE="" + . ; + . ;Lookup the Person Class entry in the multiple + . S PCIEN=0 + . S VACODE=$S(X12CODE="207LP3000X":"V110403",X12CODE="2084B0040X":"V182914",X12CODE="390200000X":"V115500",1:"") I VACODE'="" S PCIEN=$O(^USC(8932.1,"F",VACODE,0)) ;to resolve duplicate x12 codes + . I 'PCIEN S PCIEN=$O(^USC(8932.1,"G",X12CODE,0)) + . S IEN=$O(^VA(200,+XUDUZ,"USC1","B",+PCIEN,0)) + . ; + . ;If not found, add it + . I IEN'>0 D Q:IEN'>0 + .. S FDA(200.05,"+1,"_+XUDUZ_",",.01)=PCIEN ;now passing internal value of X12CODE + .. S IEN=$$UPDATER(.FDA,"",.XURET) + . ; + . ;Update the other values in the Person Class multiple + . S IENS=+IEN_","_+XUDUZ_"," + . S CURVAL=$P($G(^VA(200,+XUDUZ,"USC1",+IEN,0)),U,2) + . S NEWVAL=$G(XUARR("PersonClass",CNT,"PersonClassActive")) + . I NEWVAL="",'$$ISPCACTV(XUDUZ,IEN) S FDA(200.05,IENS,2)="TODAY",FDA(200.05,IENS,3)="@" + . E I NEWVAL]"" S FDA(200.05,IENS,2)=NEWVAL + . S:$D(XUARR("PersonClass",CNT,"PersonClassExpire"))#2 FDA(200.05,IENS,3)=XUARR("PersonClass",CNT,"PersonClassExpire") + . S D0=+XUDUZ ;Needed by input transform of Effective Date (200.05,2) + . D FILER(.FDA,"E",.XURET) + Q + ; +ISPCACTV(XUDUZ,SUBIEN) ;Is the Person Class active? + N EFFDT,EXPDT,ND + S ND=$G(^VA(200,+$G(XUDUZ),"USC1",+$G(SUBIEN),0)) Q:ND="" 0 + S EFFDT=$P(ND,U,2),EXPDT=$P(ND,U,3) + I EFFDT,DT'EXPDT Q 1 + Q 0 + ; +NEWDEA(XUDUZ,XUARR,XURET) ;Update DEA NUMBERS File #8991.9 + ;and the NEW PERSON File NEW DEA #'s multiple + N CNT,DEA,DIERR,DIHELP,DIMSG,FDA,IEN,IENS,NDEAIEN,XUERR + N STR1,STR2,STR3,CITY,STATE,ZIP + ; + ;Get address parts + D:$D(XUARR("ADDRESS DATA"))#2 + . S ADDR=XUARR("ADDRESS DATA") + . S STR1=$E($P(ADDR,"|"),1,$$MAXLEN(8991.9,1.2)) + . S STR2=$E($P(ADDR,"|",2),1,$$MAXLEN(8991.9,1.3)) + . S STR3=$E($P(ADDR,"|",3),1,$$MAXLEN(8991.9,1.4)) + . S CITY=$E($P(ADDR,"|",4),1,$$MAXLEN(8991.9,1.5)) + . S STATE=$P(ADDR,"|",5) + . S ZIP=$TR($P(ADDR,"|",6),"-") + ; + S CNT=0 F S CNT=$O(XUARR("DEA",CNT)) Q:'CNT D + . S DEA=$G(XUARR("DEA",CNT,"DEA")) + . Q:DEA="" + . ; + . ;Lookup or add a record to File #8991.9 with the passed DEA # + . S NDEAIEN=$O(^XTV(8991.9,"B",DEA,0)) + . I NDEAIEN'>0 D Q:NDEAIEN'>0 + .. K FDA + .. S IENS="+1," + .. S FDA(8991.9,IENS,.01)=DEA + .. S FDA(8991.9,IENS,10.2)="NOW" + .. S NDEAIEN=$$UPDATER(.FDA,"E",.XURET) + . ; + . ;Update Expiration Date, Address, and Schedule fields for this File #8991.9 entry + . K FDA + . S IENS=NDEAIEN_"," + . D:$D(XUARR("ADDRESS DATA"))#2 + .. S FDA(8991.9,IENS,1.2)=STR1 + .. S FDA(8991.9,IENS,1.3)=STR2 + .. S FDA(8991.9,IENS,1.4)=STR3 + .. S FDA(8991.9,IENS,1.5)=CITY + .. S FDA(8991.9,IENS,1.6)=$$STATEIEN(STATE) + .. S FDA(8991.9,IENS,1.7)=ZIP + . S:$D(XUARR("DEA",CNT,"Detox"))#2 FDA(8991.9,IENS,.03)=XUARR("DEA",CNT,"Detox") + . S:$D(XUARR("DEA",CNT,"DEAExpire"))#2 FDA(8991.9,IENS,.04)=XUARR("DEA",CNT,"DEAExpire") + . S:$D(XUARR("DEA",CNT,"SchedIINarc"))#2 FDA(8991.9,IENS,2.1)=XUARR("DEA",CNT,"SchedIINarc") + . S:$D(XUARR("DEA",CNT,"SchedIINonNarc"))#2 FDA(8991.9,IENS,2.2)=XUARR("DEA",CNT,"SchedIINonNarc") + . S:$D(XUARR("DEA",CNT,"SchedIIINarc"))#2 FDA(8991.9,IENS,2.3)=XUARR("DEA",CNT,"SchedIIINarc") + . S:$D(XUARR("DEA",CNT,"SchedIIINonNarc"))#2 FDA(8991.9,IENS,2.4)=XUARR("DEA",CNT,"SchedIIINonNarc") + . S:$D(XUARR("DEA",CNT,"SchedIV"))#2 FDA(8991.9,IENS,2.5)=XUARR("DEA",CNT,"SchedIV") + . S:$D(XUARR("DEA",CNT,"SchedV"))#2 FDA(8991.9,IENS,2.6)=XUARR("DEA",CNT,"SchedV") + . S:$D(FDA) FDA(8991.9,IENS,10.1)=$S($G(DUZ):"`"_DUZ,1:""),FDA(8991.9,IENS,10.2)="NOW" + . D FILER(.FDA,"E",.XURET) + . ; + . ;Lookup or add corresponding entry in New Person NEW DEA #'S multiple + . S IEN=$O(^VA(200,+XUDUZ,"PS4","B",DEA,0)) + . I IEN'>0 D Q:IEN'>0 + .. K FDA + .. S FDA(200.5321,"+1,"_+XUDUZ_",",.01)=DEA + .. S IEN=$$UPDATER(.FDA,"E",.XURET) + . ; + . ;Update the DEA POINTER value in the NEW DEA #'s multiple + . K FDA + . S FDA(200.5321,+IEN_","_+XUDUZ_",",.03)=NDEAIEN + . D FILER(.FDA,"",.XURET) + Q + ; +NPDEA(XUDUZ,XUARR,XURET) ;Set the single-valued fields in the New Person file for + ; DEA#, Detox #, DEA Expiration Date, and the Schedule fields from the first entry in + ; the NEW DEA#'s multiple; Also default Auth to Write Med Orders to 1 if not already set, + ; WHO is 200PIEV, and there's a DEA# + N DEAIEN,FDA,IENS,ND0,ND2,NDEAIEN + S DEAIEN=$O(^VA(200,XUDUZ,"PS4",0)) Q:'DEAIEN + S NDEAIEN=$P(^VA(200,XUDUZ,"PS4",DEAIEN,0),U,3) Q:NDEAIEN'>0 + ; + ;Set up FDA with data from DEA NUMBERS entry + S IENS=+XUDUZ_"," + S ND0=$G(^XTV(8991.9,+NDEAIEN,0)),ND2=$G(^(2)) Q:$P(ND0,U)="" + S FDA(200,IENS,53.2)=$P(ND0,U) ;DEA# + S FDA(200,IENS,53.11)=$P(ND0,U,3) ;DETOX NUMBER + S FDA(200,IENS,747.44)=$P(ND0,U,4) ;DEA EXPIRATION DATE + S FDA(200,IENS,55.1)=$P(ND2,U) ;SCHEDULE II NARCOTIC + S FDA(200,IENS,55.2)=$P(ND2,U,2) ;SCHEDULE II NON-NARCOTIC + S FDA(200,IENS,55.3)=$P(ND2,U,3) ;SCHEDULE III NARCOTIC + S FDA(200,IENS,55.4)=$P(ND2,U,4) ;SCHEDULE III NON-NARCOTIC + S FDA(200,IENS,55.5)=$P(ND2,U,5) ;SCHEDULE IV + S FDA(200,IENS,55.6)=$P(ND2,U,6) ;SCHEDULE V + I $G(XUARR("WHO"))="200PIEV",$G(XUARR("AuthWriteMedOrders"))="" S FDA(200,IENS,53.1)=1 + D FILER(.FDA,"",.XURET) + Q + ; +FIRSTDEA(XUDUZ,XUARR,XURET) ;File the first valid DEA in the XUARR input array + ;into the single-value DEA fields of the NP file + N CNT,DEA,FDA,FIRST,IENS + ; + ;Find the first valid DEA number in the input array + S FIRST="",CNT=0 F S CNT=$O(XUARR("DEA",CNT)) Q:'CNT D Q:FIRST + . S DEA=$G(XUARR("DEA",CNT,"DEA")) Q:DEA="" + . S DEA=$$GETINT(200,53.2,DEA) + . S:DEA'=U FIRST=CNT + Q:'FIRST + ; + ;Set up FDA with data from DEA NUMBERS entry + S IENS=XUDUZ_"," + S FDA(200,IENS,53.2)=DEA + S:$D(XUARR("DEA",FIRST,"Detox"))#2 FDA(200,IENS,53.11)=XUARR("DEA",FIRST,"Detox") + S:$D(XUARR("DEA",FIRST,"DEAExpire"))#2 FDA(200,IENS,747.44)=XUARR("DEA",FIRST,"DEAExpire") + S:$D(XUARR("DEA",FIRST,"SchedIINarc"))#2 FDA(200,IENS,55.1)=XUARR("DEA",FIRST,"SchedIINarc") + S:$D(XUARR("DEA",FIRST,"SchedIINonNarc"))#2 FDA(200,IENS,55.2)=XUARR("DEA",FIRST,"SchedIINonNarc") + S:$D(XUARR("DEA",FIRST,"SchedIIINarc"))#2 FDA(200,IENS,55.3)=XUARR("DEA",FIRST,"SchedIIINarc") + S:$D(XUARR("DEA",FIRST,"SchedIIINonNarc"))#2 FDA(200,IENS,55.4)=XUARR("DEA",FIRST,"SchedIIINonNarc") + S:$D(XUARR("DEA",FIRST,"SchedIV"))#2 FDA(200,IENS,55.5)=XUARR("DEA",FIRST,"SchedIV") + S:$D(XUARR("DEA",FIRST,"SchedV"))#2 FDA(200,IENS,55.6)=XUARR("DEA",FIRST,"SchedV") + I $G(XUARR("WHO"))="200PIEV",$G(XUARR("AuthWriteMedOrders"))="" S FDA(200,IENS,53.1)=1 + D FILER(.FDA,"E",.XURET) + Q + ; +FILER(XUMVIFDA,FLAG,XURET) ;Call the Filer + N DIERR,DIHELP,DIMSG,IENS,FILE,ROOT,XUMVIERR + Q:'$D(XUMVIFDA) + S FILE=$O(XUMVIFDA(0)),IENS=$O(XUMVIFDA(+FILE,"")),ROOT=$$ROOT^DILFD(FILE,IENS)_+IENS_")" + I $G(ROOT)="" D ADDERR(.XURET,"Unable to determine global root of File #"_FILE_", IENS '"_IENS_".") Q + L +@ROOT:10 E D ADDERR(.XURET,"Unable to lock global "_ROOT_".") Q + D FILE^DIE($G(FLAG),"XUMVIFDA","XUMVIERR") + L -@ROOT + D:$G(DIERR) ADDERR(.XURET,$$BLDERR("XUMVIERR")) + Q + ; +UPDATER(XUMVIFDA,FLAG,XURET) ;Call the Updater + N DIERR,DIHELP,DIMSG,XUMVIERR,XUMVIIEN + D UPDATE^DIE(FLAG,"XUMVIFDA","XUMVIIEN","XUMVIERR") + I $G(DIERR) D ADDERR(.XURET,$$BLDERR("XUMVIERR")) Q 0 + Q +$G(XUMVIIEN(1)) + ; +ADDERR(XURET,MSG) ;Add error MSG to XURET + Q:$G(MSG)="" + S XURET=$S(XURET]"":XURET_" ",1:"-1^")_MSG + Q + ; +STATEIEN(STATE) ;Return "`"_IEN if valid abbreviation, VA code, or name + N IEN + Q:$G(STATE)="" "" + S IEN=$S(STATE="FG":$O(^DIC(5,"B","FOREIGN COUNTRY",0)),STATE="OT":$O(^DIC(5,"B","OTHER",0)),STATE="EU":$O(^DIC(5,"B","EUROPE",0)),1:$O(^DIC(5,"C",STATE,0))) + S:'IEN IEN=$O(^DIC(5,"B",STATE,"")) + Q $S(IEN>0:"`"_IEN,1:STATE) + ; +GETINT(FILE,FLD,VAL) ;Get the internal form of the data; returns "^" if not valid + N DIERR,DIHELP,DIMSG,XUMSG,XURES + Q:VAL="" "" + D CHK^DIE(FILE,FLD,"",VAL,.XURES,"XUMSG") + Q XURES + ; +BLDERR(INROOT) ;Build a string containing error messages returned by FileMan + N ERRSTR,I,XUERMSGS + D MSG^DIALOG("AE",.XUERMSGS,"","",$G(INROOT)) + S ERRSTR="" + S I=0 F S I=$O(XUERMSGS(I)) Q:'I S:XUERMSGS(I)]"" ERRSTR=ERRSTR_$E(" ",ERRSTR]"")_XUERMSGS(I) + Q ERRSTR + ; +MAXLEN(FILE,FLD) ;Return the maximum length of field FLD in file FILE + N MAX + S MAX=$$GET1^DID(+FILE,+FLD,"","FIELD LENGTH") S:MAX'>0 MAX=999 + Q MAX + ; + ;================================================= + ; Code for storing debugging information in ^XTMP + ;================================================= +RECORD(PARAM,FLAG,RPCNAME) ;Record RPC inputs for debugging + ;Return seq# in ^XTMP + N NODE,NOW,SEQ,TODAY + Q:'$$ISDEBUG 0 + S:$G(RPCNAME)="" RPCNAME="XUS MVI ENRICH NEW PERSON" + S NOW=$$NOW^XLFDT,TODAY=$P(NOW,".") + S NODE=$$NODE + ; + L +^XTMP(NODE):2 + D SETXTMP0(NODE) + S SEQ=$O(^XTMP(NODE," "),-1)+1 + M ^XTMP(NODE,SEQ,"PARAM")=PARAM + S ^XTMP(NODE,SEQ,"FLAG")=$G(FLAG) + S ^XTMP(NODE,SEQ,"DT")=NOW + S ^XTMP(NODE,SEQ,"DUZ")=$G(DUZ) + S ^XTMP(NODE,SEQ,"RPC")=RPCNAME + L -^XTMP(NODE) + Q SEQ + ; +RETURN(SEQ,RETURN) ;Record the return value + Q:'SEQ Q:'$$ISDEBUG + M ^XTMP($$NODE,SEQ,"RETURN")=RETURN + Q + ; +DBON ;Set DEBUG on + N NODE + S NODE=$$NODE + D SETXTMP0 + S ^XTMP(NODE,"DEBUG")=1 + W !,$NA(^XTMP(NODE,"DEBUG"))_" set to 1.",! + Q + ; +DBOFF ;Set DEBUG off + N NODE + S NODE=$$NODE + K ^XTMP(NODE,"DEBUG") + K:'$O(^XTMP(NODE,0)) ^XTMP(NODE) + W !,$NA(^XTMP(NODE,"DEBUG"))_" killed.",! + Q + ; +ISDEBUG() ;Return 1 if DEBUG mode flag is set + Q $G(^XTMP($$NODE,"DEBUG")) + ; +PURGE ;Purge the debugging data stored in ^XTMP + N ISDEBUG + S ISDEBUG=$$ISDEBUG + K ^XTMP($$NODE) + W !,$NA(^XTMP($$NODE))_" killed.",! + D:ISDEBUG DBON + Q + ; +SETXTMP0(NODE,DESC,LIFE) ;Set 0 node of ^XTMP(node) + N CREATEDT + S:$G(NODE)="" NODE=$$NODE + S CREATEDT=$S($D(^XTMP(NODE,0))#2:$P(^(0),U,2),1:DT) + S:'$G(LIFE) LIFE=30 + S:$G(DESC)="" DESC="New Person RPC Inputs and Outputs" + S ^XTMP(NODE,0)=$$FMADD^XLFDT(DT,LIFE)_U_CREATEDT_U_DESC + Q + ; +NODE() ;Return ^XTMP Debug subscript + Q "XU_RPC_DEBUG_NP" diff --git a/Packages/Kernel/Routines/XUMVINPA.m b/Packages/Kernel/Routines/XUMVINPA.m new file mode 100644 index 00000000000..0e67a2d8b6a --- /dev/null +++ b/Packages/Kernel/Routines/XUMVINPA.m @@ -0,0 +1,70 @@ +XUMVINPA ;MVI/DRI Master Veteran Index New Person Add API ;6/4/19 16:01 + ;;8.0;KERNEL;**711**;Jul 10, 1995;Build 9 + ;Per VA Directive 6402, this routine should not be modified. + ; + ;**711 - STORY 978382 (dri) new routine - new person add api + ; + Q + ; +ADDUSER(XUARR) ;Add a new user using minimum attributes for user identification of + ; PPMS (Provider Profile Management System) PIE (Provider Integration Engine) + ; + ; This interface is available under a private Integration Agreement (#7062) in + ; support of PPMS PIE only, and should not be used under any other circumstances. + ; + ; Input: + ; XUARR("NAME") = NAME surname|first name|middle name|suffix|full .01 name + ; XUARR("NPI") = NPI (National Provider Identifier) + ; + ; Return: + ; Fail = "-1^Error Message" + ; Success = IEN^#.01 NAME field^1 add of NEW PERSON (#200) file entry + ; = IEN person already exists + ; (Note: this routine will NOT set DUZ to the identified IEN) + ; + ; Example: + ; S NEWDUZ=$$ADDUSER^XUMVINPA(.XUARR) + ; + ; + N XUDUZ,ERRMSG + ; + I '$$CHKDGT^XUSNPI($G(XUARR("NPI"))) Q "-1^Invalid NPI" ;#41.99 - NPI + S XUDUZ=+$O(^VA(200,"ANPI",XUARR("NPI"),0)) ;does user already exist + I XUDUZ Q XUDUZ ;per chris, if person already exists, return duz regardless if active and don't udpate + ; + I $P($G(XUARR("NAME")),"|",5)="" Q "-1^Subject NAME is required to add a new user" ;#.01 - NAME + ; + S XUDUZ=$$ADDU($P(XUARR("NAME"),"|",5)) ;Put the name in the .01 field first, pass back all three pieces to identify an add + I +XUDUZ<1 Q "-1^Create of new user record failed" + ; + S ERRMSG=$$UPDU(.XUARR,XUDUZ) ;then update the remaining fields, no checks if validation issues + ; + Q XUDUZ ;duz of new person + ; +ADDU(XUNAME) ;Add new name to the New Person File + N DD,DO,DIC,DA,X,Y + K ^TMP("DIERR",$J) + S DIC="^VA(200,",DIC(0)="F",X=XUNAME + ; Get a LOCK. Block if can't get. + L +^VA(200,0):10 Q:'$T "-1^Addition of new users is blocked" + D FILE^DICN + L -^VA(200,0) + Q Y + ; +UPDU(XUARR,XUDUZ) ;Update user in the New Person File with Enterprise View + N DIC,FDA,IEN,X,XUKEY,Y + K ^TMP("DIERR",$J) + S IEN=+XUDUZ_"," + S FDA(200,IEN,41.99)=XUARR("NPI") ;NPI + ; + F XUKEY="XUORES","PROVIDER" K DIC S DIC="^DIC(19.1,",DIC(0)="MZ",X=XUKEY D ^DIC Q:Y<0 D ;give user XUORES & PROVIDER keys + .I $D(^VA(200,XUDUZ,51,"B",+Y)) Q ;user already has key + .S FDA(200.051,"+"_+Y_","_IEN,.01)=+Y ;key + .S FDA(200.051,"+"_+Y_","_IEN,1)=DUZ ;given by + .S FDA(200.051,"+"_+Y_","_IEN,2)=DT ;date given + ; + ; Apply all the changes + I $D(FDA) K IEN D UPDATE^DIE(,"FDA","IEN") ;File all the data + ;I $D(^TMP("DIERR",$J)) Q "-1^FileMan error" ;FileMan Error + Q "" + ; diff --git a/Packages/Kernel/Routines/XUMVINPU.m b/Packages/Kernel/Routines/XUMVINPU.m index e169d5083df..dc6bc8167d2 100644 --- a/Packages/Kernel/Routines/XUMVINPU.m +++ b/Packages/Kernel/Routines/XUMVINPU.m @@ -1,57 +1,157 @@ XUMVINPU ;MVI/DRI - Master Veteran Index New Person Utilities ;3/21/18 10:15 - ;;8.0;KERNEL;**691**;Jul 10, 1995;Build 2 + ;;8.0;KERNEL;**691,711**;Jul 10, 1995;Build 9 + ;Per VA Directive 6402, this routine should not be modified. ; -GET(XURET,XUDUZ,SECID) ;rpc to retrieve new person file data + ;**711, Story 977780 (jfw) + ; - Added NPI/SSN as additional lookup values/parameters + ; - Added the following additional traits to return: + ; STREET ADDRESS 2 (.112) + ; STREET ADDRESS 3 (.113) + ; CITY (.114) + ; STATE (.115) + ; ZIP CODE (.116) + ; FAX NUMBER (.136) + ; SEX (4) + ; TITLE (8) + ; NPI (41.99) + ; KEYS (51) + ; PERSON CLASS (8932.1) + ; Effective Date (2) + ; Expiration Date (3) + ; AUTHORIZED TO WRITE MED ORDERS (53.1) + ; DETOX/MAINTENANCE ID NUMBER (53.11) + ; DEA# (53.2) + ; INACTIVE DATE (53.4) + ; PROVIDER CLASS (53.5) + ; PROVIDER TYPE (53.6) + ; REMARKS (53.9) + ; NON-VA PRESCRIBER (53.91) + ; TAX ID (53.92) + ; SCHEDULE II NARCOTIC (55.1) + ; SCHEDULE II NON-NARCOTIC (55.2) + ; SCHEDULE III NARCOTIC (55.3) + ; SCHEDULE III NON-NARCOTIC (55.4) + ; SCHEDULE IV (55.5) + ; SCHEDULE V (55.6) + ; DEA EXPIRATION DATE (747.44) + ; + ; The following will be returned if patch XU*8.0*688 installed + ; DETOX CALCULATED (9001) + ; DEA NUMBER (53.2...01) + ; INDIVIDUAL DEA SUFFIX (53.2...02) + ; All fields in DEA NUMBERS (#8991.9) file if DEA NUMBER exists + ; (Except .01 which is being returned from File #200 above) + ; + ; +GET(XURET,XUDUZ,SECID,NPI,SSN) ;rpc to retrieve new person file data ; ; called from rpc: XUS MVI NEW PERSON GET ; - ; Input: + ; Input (ONE of the following): ; XUDUZ = NEW PERSON IEN - ; or ; SECID = SECURITY ID + ; NPI = NATIONAL PROVIDER IDENTIFIER + ; SSN = SOCIAL SECURITY NUMBER ; ; Output: ; Success: ; XURET = ^TMP("XUMVINPU",$J) - ; @XURET@(#) = FILE #;FIELD #^FIELD NAME^INTERNAL VALUE^EXTERNAL VALUE - ; @XURET@(1)="200;IEN^DUZ^^" - ; @XURET@(2)="200;.01^NAME^^" - ; @XURET@(3)="200;7^DISUSER^^" - ; @XURET@(4)="200;9.2^TERMINATION DATE^^" - ; @XURET@(5)="200;9.4^Termination Reason^^" - ; @XURET@(6)="200;15^PROHIBITED TIMES FOR SIGN-ON^^" - ; @XURET@(7)="200;11.2^DATE VERIFY CODE LAST CHANGED^^" - ; @XURET@(8)="200;.111^STREET ADDRESS 1^^" - ; @XURET@(9)="200;.132^OFFICE PHONE^^" - ; @XURET@(10)="200;.151^EMAIL ADDRESS^^" - ; @XURET@(11)="200;30^DATE ENTERED^^" - ; @XURET@(12)="200;31^CREATOR^^" - ; @XURET@(13)="200;9^SSN^^" - ; @XURET@(14)="200;202^LAST SIGN-ON DATE/TIME^^" - ; @XURET@(15)="200;202.02^XUS Logon Attempt Count^^" - ; @XURET@(16)="200;202.03^XUS Active User^^" - ; @XURET@(17)="200;202.04^Entry Last Edit Date^^" - ; @XURET@(18)="200;202.05^LOCKOUT USER UNTIL^^" - ; @XURET@(19)="200.02;.01^DIVISION^1^^" - ; @XURET@(20)="200.02;.01^DIVISION^2 - ; @XURET@(21)="200;10.1^NAME COMPONENTS^^" - ; @XURET@(22)="20;1^FAMILY (LAST) NAME^^" - ; @XURET@(23)="20;2^GIVEN (FIRST) NAME^^" - ; @XURET@(24)="20;3^MIDDLE NAME^^" - ; @XURET@(25)="20;4^PREFIX^^" - ; @XURET@(26)="20;5^SUFFIX^^" - ; @XURET@(27)="20;6^DEGREE^^" - ; @XURET@(28)="200;29^SERVICE/SECTION^^" - ; @XURET@(29)="200;201^PRIMARY MENU OPTION^^" - ; @XURET@(30)="200.03;.01^SECONDARY MENU OPTIONS^1^^" - ; @XURET@(31)="200.03;.01^SECONDARY MENU OPTIONS^2^^" - ; @XURET@(32)="200.03;.01^SECONDARY MENU OPTIONS^3^^" - ; @XURET@(33)="200;205.1^SECID^^" - ; @XURET@(34)="200;205.2^SUBJECT ORGANIZATION^^" - ; @XURET@(35)="200;205.3^SUBJECT ORGANIZATION ID^^" - ; @XURET@(36)="200;205.4^UNIQUE USER ID^^" - ; @XURET@(37)="200;205.5^ADUPN^^" - ; @XURET@(38)="200;501.1^NETWORK USERNAME^^" + ; @XURET@(#) = FILE #;FIELD #<;SUBFIELD #><;FILE POINTER>^FIELD NAME^^INTERNAL VALUE^EXTERNAL VALUE + ; <> Denotes optional values. If Counter populated, denotes multiple value <1-n>. + ; @XURET@(#)="200;IEN^DUZ^^^" + ; @XURET@(#)="200;.01^NAME^^^" + ; @XURET@(#)="200;4^SEX^^^" + ; @XURET@(#)="200;8^TITLE^^^" + ; @XURET@(#)="200;7^DISUSER^^^" + ; @XURET@(#)="200;9.2^TERMINATION DATE^^^" + ; @XURET@(#)="200;9.4^Termination Reason^^^" + ; @XURET@(#)="200;15^PROHIBITED TIMES FOR SIGN-ON^^^" + ; @XURET@(#)="200;11.2^DATE VERIFY CODE LAST CHANGED^^^" + ; @XURET@(#)="200;.111^STREET ADDRESS 1^^^" + ; @XURET@(#)="200;.112^STREET ADDRESS 2^^^" + ; @XURET@(#)="200;.113^STREET ADDRESS 3^^^" + ; @XURET@(#)="200;.114^CITY^^^" + ; @XURET@(#)="200;.115^STATE^^^" + ; @XURET@(#)="200;.116^ZIP CODE^^^" + ; @XURET@(#)="200;.132^OFFICE PHONE^^^" + ; @XURET@(#)="200;.136^FAX NUMBER^^^" + ; @XURET@(#)="200;.151^EMAIL ADDRESS^^^" + ; @XURET@(#)="200;30^DATE ENTERED^^^" + ; @XURET@(#)="200;31^CREATOR^^^" + ; @XURET@(#)="200;41.99^NPI^^^" + ; @XURET@(#)="200;9^SSN^^^" + ; @XURET@(#)="200;202^LAST SIGN-ON DATE/TIME^^^" + ; @XURET@(#)="200;202.02^XUS Logon Attempt Count^^^" + ; @XURET@(#)="200;202.03^XUS Active User^^^" + ; @XURET@(#)="200;202.04^Entry Last Edit Date^^^" + ; @XURET@(#)="200;202.05^LOCKOUT USER UNTIL^^^" + ; @XURET@(#)="200;16;.01^DIVISION^<1-n>^^" + ; @XURET@(#)="200;10.1^NAME COMPONENTS^^^" + ; @XURET@(#)="20;1^FAMILY (LAST) NAME^^^" + ; @XURET@(#)="20;2^GIVEN (FIRST) NAME^^^" + ; @XURET@(#)="20;3^MIDDLE NAME^^^" + ; @XURET@(#)="20;4^PREFIX^^^" + ; @XURET@(#)="20;5^SUFFIX^^^" + ; @XURET@(#)="20;6^DEGREE^^^" + ; @XURET@(#)="200;29^SERVICE/SECTION^^^" + ; @XURET@(#)="200;201^PRIMARY MENU OPTION^^^" + ; @XURET@(#)="200;203;.01^SECONDARY MENU OPTIONS^<1-n>^^" + ; @XURET@(#)="200;51;.01^KEYS^<1-n>^^" + ; @XURET@(#)="200;205.1^SECID^^^" + ; @XURET@(#)="200;205.2^SUBJECT ORGANIZATION^^^" + ; @XURET@(#)="200;205.3^SUBJECT ORGANIZATION ID^^^" + ; @XURET@(#)="200;205.4^UNIQUE USER ID^^^" + ; @XURET@(#)="200;205.5^ADUPN^^^" + ; @XURET@(#)="200;501.1^NETWORK USERNAME^^^" + ; @XURET@(#)="200;8932.1;.01^PERSON CLASS^<1-n>^^" + ; @XURET@(#)="200;8932.1;2^EFFECTIVE DATE^<#>^^" + ; @XURET@(#)="200;8932.1;3^EXPIRATION DATE^<#>^^" + ; @XURET@(#)="200;53.1^AUTHORIZED TO WRITE MED ORDERS^^^" + ; @XURET@(#)="200;53.11^DETOX/MAINTENANCE ID NUMBER^^^" + ; @XURET@(#)="200;53.2^DEA#^^^" + ; @XURET@(#)="200;747.44^DEA EXPIRATION DATE^^^" + ; @XURET@(#)="200;53.4^INACTIVE DATE^^^" + ; @XURET@(#)="200;53.5^PROVIDER CLASS^^^" + ; @XURET@(#)="200;53.6^PROVIDER TYPE^^^" + ; @XURET@(#)="200;53.9^REMARKS^^^" + ; @XURET@(#)="200;53.91^NON-VA PRESCRIBER^^^" + ; @XURET@(#)="200;53.92^TAX ID^^^" + ; @XURET@(#)="200;55.1^SCHEDULE II NARCOTIC^^^" + ; @XURET@(#)="200;55.2^SCHEDULE II NON-NARCOTIC^^^" + ; @XURET@(#)="200;55.3^SCHEDULE III NARCOTIC^^^" + ; @XURET@(#)="200;55.4^SCHEDULE III NON-NARCOTIC^^^" + ; @XURET@(#)="200;55.5^SCHEDULE IV^^^" + ; @XURET@(#)="200;55.6^SCHEDULE V^^^" + ; + ; **The following are ONLY returned if patch + ; **XU*8.0*688 has been installed. + ; **Subscript Counter (#) will denote the DEA Data that belongs to the DEA NUMBER subscript + ; ** New DEA Data will always follow the DEA NUMBER entry! + ; @XURET@(#)="200;9001^DETOX CALCULATED^^^" + ; @XURET@(#)="200;53.21;.01;8991.9^DEA NUMBER^<1-n>^^" + ; @XURET@(#)="200;53.21;.02^INDIVIDUAL DEA SUFFIX^<#>^^" + ; **Only returned if there is a DEA NUMBER (200.5321) value!!** + ; @XURET@(#)="8991.9;.02^BUSINESS ACTIVITY CODE^<#>^^" + ; @XURET@(#)="8991.9;.03^DETOX NUMBER^<#>^^" + ; @XURET@(#)="8991.9;.04^EXPIRATION DATE^<#>^^" + ; @XURET@(#)="8991.9;.06^USE FOR INPATIENT ORDERS?^<#>^^" + ; @XURET@(#)="8991.9;.07^TYPE^<#>^^" + ; @XURET@(#)="8991.9;1.1^NAME (PROVIDER OR INSTITUTION)^<#>^^" + ; @XURET@(#)="8991.9;1.2^STREET ADDRESS 1^<#>^^" + ; @XURET@(#)="8991.9;1.3^STREET ADDRESS 2^<#>^^" + ; @XURET@(#)="8991.9;1.4^STREET ADDRESS 3^<#>^^" + ; @XURET@(#)="8991.9;1.5^CITY^<#>^^" + ; @XURET@(#)="8991.9;1.6^STATE^<#>^^" + ; @XURET@(#)="8991.9;1.7^ZIP CODE^<#>^^" + ; @XURET@(#)="8991.9;2.1^SCHEDULE II NARCOTIC?^<#>^^" + ; @XURET@(#)="8991.9;2.2^SCHEDULE II NON-NARCOTIC?^<#>^^" + ; @XURET@(#)="8991.9;2.3^SCHEDULE III NARCOTIC?^<#>^^" + ; @XURET@(#)="8991.9;2.4^SCHEDULE III NON-NARCOTIC?^<#>^^" + ; @XURET@(#)="8991.9;2.5^SCHEDULE IV?^<#>^^" + ; @XURET@(#)="8991.9;2.6^SCHEDULE V?^<#>^^" + ; @XURET@(#)="8991.9;10.1^LAST UPDATED BY^<#>^^" + ; @XURET@(#)="8991.9;10.2^LAST UPDATED DATE/TIME^<#>^^" + ; @XURET@(#)="8991.9;10.3^LAST DOJ UPDATE DATE/TIME^<#>^^" ; ; Fail: ; XURET = ^TMP("XUMVINPU",$J) @@ -71,50 +171,102 @@ ; #)=continuation of returned data ; ; Example calling rpc from MVI: - ; D DIRECT^XWB2HL7(.XURET,SITE,"XUS MVI NEW PERSON GET","",$G(XUDUZ),$G(SECID)) + ; D DIRECT^XWB2HL7(.XURET,SITE,"XUS MVI NEW PERSON GET","",$G(XUDUZ),$G(SECID),$G(NPI),$G(SSN)) ; ; K XURET - N CNT,FILE,FLD,FLDNM,XUARR,XUGBL + N I,CNT,FILE,FLD,FLDS,FLDCNT,FLDNM,XUARR,XUGBL S XUGBL="^TMP("_"""XUMVINPU"""_","_$J_")" K @XUGBL ; S CNT=1,FILE=200 I $G(SECID)'="" S XUDUZ=$O(^VA(FILE,"ASECID",SECID,0)) + I $G(NPI)'="" S XUDUZ=$O(^VA(FILE,"ANPI",NPI,0)) + I $G(SSN)'="" S XUDUZ=$O(^VA(FILE,"SSN",SSN,0)) I $G(XUDUZ)="" S @XUGBL@(CNT)="-1^Invalid User" S XURET=$NA(@XUGBL) Q I '$D(^VA(FILE,XUDUZ)) S @XUGBL@(CNT)="-1^No Data for User: "_XUDUZ S XURET=$NA(@XUGBL) Q ; - S @XUGBL@(CNT)=FILE_";IEN^DUZ^"_XUDUZ_"^"_XUDUZ S CNT=CNT+1 - ; - D GETS^DIQ(FILE,+XUDUZ_",",".01;7;9.2;9.4;15;11.2;.111;.132;.151;30;31;9;202;202.02;202.03;202.04;202.05;16*;10.1;29;201;203*;205.1;205.2;205.3;205.4;205.5;501.1","EI","XUARR") ;retrieve data - ; - F FLD=.01,7,9.2,9.4,15,11.2,.111,.132,.151,30,31,9,202,202.02,202.03,202.04,202.05,16,10.1,29,201,203,205.1,205.2,205.3,205.4,205.5,501.1 D - . D FIELD^DID(FILE,FLD,"","LABEL","FLDNM") - . ; - . I FLD=16 D Q ;division multiple - . . N IENS,MCNT,SUBFILE,SUBFLD - . . S MCNT=1,SUBFILE=200.02,SUBFLD=.01 - . . D FIELD^DID(SUBFILE,SUBFLD,"","LABEL","FLDNM") - . . I '$D(XUARR(SUBFILE)) S @XUGBL@(CNT)=SUBFILE_";"_SUBFLD_"^"_(FLDNM("LABEL"))_"^"_MCNT_"^^" S CNT=CNT+1 Q - . . S IENS="" F S IENS=$O(XUARR(SUBFILE,IENS)) Q:IENS="" S @XUGBL@(CNT)=SUBFILE_";"_SUBFLD_"^"_(FLDNM("LABEL"))_"^"_MCNT_"^"_$G(XUARR(SUBFILE,IENS,SUBFLD,"I"))_"^"_$G(XUARR(SUBFILE,IENS,SUBFLD,"E")) S MCNT=MCNT+1,CNT=CNT+1 - . ; - . I FLD=10.1 D Q ;name components - . . S @XUGBL@(CNT)=FILE_";"_FLD_"^"_(FLDNM("LABEL"))_"^"_$G(XUARR(FILE,XUDUZ_",",FLD,"I"))_"^"_$G(XUARR(FILE,XUDUZ_",",FLD,"E")) S CNT=CNT+1 - . . N NCFILE,NCFLD - . . S NCFILE=20 - . . D GETS^DIQ(NCFILE,+$G(XUARR(FILE,XUDUZ_",",FLD,"I"))_",","1;2;3;4;5;6","EI","XUARR") ;retrieve name component data - . . F NCFLD=1,2,3,4,5,6 D - . . . D FIELD^DID(NCFILE,NCFLD,"","LABEL","FLDNM") - . . . S @XUGBL@(CNT)=NCFILE_";"_NCFLD_"^"_(FLDNM("LABEL"))_"^"_XUARR(NCFILE,+$G(XUARR(FILE,XUDUZ_",",FLD,"I"))_",",NCFLD,"I")_"^"_XUARR(NCFILE,+$G(XUARR(FILE,XUDUZ_",",FLD,"I"))_",",NCFLD,"E") S CNT=CNT+1 - . ; - . I FLD=203 D Q ;secondary menu options multiple - . . N IENS,MCNT,SUBFILE,SUBFLD - . . S MCNT=1,SUBFILE=200.03,SUBFLD=.01 - . . D FIELD^DID(SUBFILE,SUBFLD,"","LABEL","FLDNM") - . . I '$D(XUARR(SUBFILE)) S @XUGBL@(CNT)=SUBFILE_";"_SUBFLD_"^"_(FLDNM("LABEL"))_"^"_MCNT_"^^" S CNT=CNT+1 Q - . . S IENS="" F S IENS=$O(XUARR(SUBFILE,IENS)) Q:IENS="" S @XUGBL@(CNT)=SUBFILE_";"_SUBFLD_"^"_(FLDNM("LABEL"))_"^"_MCNT_"^"_$G(XUARR(SUBFILE,IENS,SUBFLD,"I"))_"^"_$G(XUARR(SUBFILE,IENS,SUBFLD,"E")) S MCNT=MCNT+1,CNT=CNT+1 - . ; - . S @XUGBL@(CNT)=FILE_";"_FLD_"^"_(FLDNM("LABEL"))_"^"_XUARR(FILE,XUDUZ_",",FLD,"I")_"^"_XUARR(FILE,XUDUZ_",",FLD,"E") S CNT=CNT+1 ;all other fields + S @XUGBL@(CNT)=FILE_";IEN^DUZ^^"_XUDUZ_"^"_XUDUZ S CNT=CNT+1 + ; + S FLDS=".01;4;8;7;9.2;9.4;15;11.2;.111;.112;.113;.114;.115;.116;.132;.136;.151;30;31;41.99;9;202;202.02;202.03;" + S FLDS=FLDS_"202.04;202.05;16*;10.1;29;201;203*;51*;205.1;205.2;205.3;205.4;205.5;501.1;8932.1*;53.1;53.11;53.2;" + S FLDS=FLDS_"747.44;53.4;53.5;53.6;53.9;53.91;53.92;55.1;55.2;55.3;55.4;55.5;55.6" + S:($$PATCH^XPDUTL("XU*8.0*688")) FLDS=FLDS_";9001;53.21*" ;NEW DETOX CALCULATED and DEA #'S multiple | DBIA #10141 (Supported) + S FLDCNT=$L(FLDS,";") + ; + D GETS^DIQ(FILE,+XUDUZ_",",FLDS,"EI","XUARR") ;retrieve data + ; + F I=1:1:FLDCNT D + .S FLD=$P($P(FLDS,";",I),"*") + .D FIELD^DID(FILE,FLD,"","LABEL","FLDNM") + .; + .I FLD=16 D Q ;division multiple + ..N IENS,MCNT,SUBFILE,SUBFLD + ..S MCNT=1,SUBFILE=200.02,SUBFLD=.01 + ..D FIELD^DID(SUBFILE,SUBFLD,"","LABEL","FLDNM") + ..I '$D(XUARR(SUBFILE)) S @XUGBL@(CNT)=FILE_";"_FLD_";"_SUBFLD_"^"_(FLDNM("LABEL"))_"^"_MCNT_"^^" S CNT=CNT+1 Q + ..S IENS="" F S IENS=$O(XUARR(SUBFILE,IENS)) Q:IENS="" S @XUGBL@(CNT)=FILE_";"_FLD_";"_SUBFLD_"^"_(FLDNM("LABEL"))_"^"_MCNT_"^"_$G(XUARR(SUBFILE,IENS,SUBFLD,"I"))_"^"_$G(XUARR(SUBFILE,IENS,SUBFLD,"E")) S MCNT=MCNT+1,CNT=CNT+1 + .; + .I FLD=10.1 D Q ;name components + ..S @XUGBL@(CNT)=FILE_";"_FLD_"^"_(FLDNM("LABEL"))_"^^"_$G(XUARR(FILE,XUDUZ_",",FLD,"I"))_"^"_$G(XUARR(FILE,XUDUZ_",",FLD,"E")) S CNT=CNT+1 + ..N NCFILE,NCFLD + ..S NCFILE=20 + ..D GETS^DIQ(NCFILE,+$G(XUARR(FILE,XUDUZ_",",FLD,"I"))_",","1;2;3;4;5;6","EI","XUARR") ;retrieve name component data + ..F NCFLD=1,2,3,4,5,6 D + ...D FIELD^DID(NCFILE,NCFLD,"","LABEL","FLDNM") + ...S @XUGBL@(CNT)=NCFILE_";"_NCFLD_"^"_(FLDNM("LABEL"))_"^^"_XUARR(NCFILE,+$G(XUARR(FILE,XUDUZ_",",FLD,"I"))_",",NCFLD,"I")_"^"_XUARR(NCFILE,+$G(XUARR(FILE,XUDUZ_",",FLD,"I"))_",",NCFLD,"E") S CNT=CNT+1 + .; + .I FLD=51 D Q ;KEYS multiple + ..N IENS,MCNT,SUBFILE,SUBFLD + ..S MCNT=1,SUBFILE=200.051,SUBFLD=.01 + ..D FIELD^DID(SUBFILE,SUBFLD,"","LABEL","FLDNM") + ..I '$D(XUARR(SUBFILE)) S @XUGBL@(CNT)=FILE_";"_FLD_";"_SUBFLD_"^"_(FLDNM("LABEL"))_"^"_MCNT_"^^",CNT=CNT+1 Q + ..S IENS="" F S IENS=$O(XUARR(SUBFILE,IENS)) Q:IENS="" S @XUGBL@(CNT)=FILE_";"_FLD_";"_SUBFLD_"^"_(FLDNM("LABEL"))_"^"_MCNT_"^"_$G(XUARR(SUBFILE,IENS,SUBFLD,"I"))_"^"_$G(XUARR(SUBFILE,IENS,SUBFLD,"E")),MCNT=MCNT+1,CNT=CNT+1 + .; + .I FLD=53.21 D Q ;NEW DEA #'s multiple + ..N I,IEN,IENS,MCNT,SUBFILE,SUBFLD,DEAARR,DEAFILE,DEAFLD,DEAFLDS,DEAFLDCNT + ..S MCNT=1,SUBFILE=200.5321,SUBFLD=.01,DEAFILE=8991.9 + ..D FIELD^DID(SUBFILE,SUBFLD,"","LABEL","FLDNM") + ..I '$D(XUARR(SUBFILE)) D Q + ...S @XUGBL@(CNT)=FILE_";"_FLD_";"_SUBFLD_";8991.9^"_(FLDNM("LABEL"))_"^"_MCNT_"^^",CNT=CNT+1 + ...D FIELD^DID(SUBFILE,.02,"","LABEL","FLDNM") + ...S @XUGBL@(CNT)=FILE_";"_FLD_";"_.02_"^"_(FLDNM("LABEL"))_"^"_MCNT_"^^",CNT=CNT+1 + ..S DEAFLDS=".02;.03;.04;.06;.07;1.1;1.2;1.3;1.4;1.5;1.6;1.7;2.1;2.2;2.3;2.4;2.5;2.6;10.1;10.2;10.3" + ..S DEAFLDCNT=$L(DEAFLDS,";") + ..S IENS="" F S IENS=$O(XUARR(SUBFILE,IENS)) Q:IENS="" D + ...S IEN=$G(XUARR(SUBFILE,IENS,.03,"I")) + ...D FIELD^DID(SUBFILE,SUBFLD,"","LABEL","FLDNM") + ...S @XUGBL@(CNT)=FILE_";"_FLD_";"_SUBFLD_";8991.9^"_(FLDNM("LABEL"))_"^"_MCNT_"^"_IEN_"^"_$G(XUARR(SUBFILE,IENS,.03,"E")),CNT=CNT+1 + ...D FIELD^DID(SUBFILE,.02,"","LABEL","FLDNM") + ...S @XUGBL@(CNT)=FILE_";"_FLD_";.02^"_(FLDNM("LABEL"))_"^"_MCNT_"^"_$G(XUARR(SUBFILE,IENS,.02,"I"))_"^"_$G(XUARR(SUBFILE,IENS,.02,"E")),CNT=CNT+1 + ...D GETS^DIQ(DEAFILE,IEN_",",DEAFLDS,"EI","DEAARR") ;retrieve DEA data + ...F I=1:1:DEAFLDCNT D + ....S DEAFLD=$P(DEAFLDS,";",I) + ....D FIELD^DID(DEAFILE,DEAFLD,"","LABEL","FLDNM") + ....S @XUGBL@(CNT)=DEAFILE_";"_DEAFLD_"^"_(FLDNM("LABEL"))_"^"_MCNT_"^"_$G(DEAARR(DEAFILE,IEN_",",DEAFLD,"I"))_"^"_$G(DEAARR(DEAFILE,IEN_",",DEAFLD,"E")),CNT=CNT+1 + ...S MCNT=MCNT+1 + .; + .I FLD=203 D Q ;secondary menu options multiple + ..N IENS,MCNT,SUBFILE,SUBFLD + ..S MCNT=1,SUBFILE=200.03,SUBFLD=.01 + ..D FIELD^DID(SUBFILE,SUBFLD,"","LABEL","FLDNM") + ..I '$D(XUARR(SUBFILE)) S @XUGBL@(CNT)=FILE_";"_FLD_";"_SUBFLD_"^"_(FLDNM("LABEL"))_"^"_MCNT_"^^" S CNT=CNT+1 Q + ..S IENS="" F S IENS=$O(XUARR(SUBFILE,IENS)) Q:IENS="" S @XUGBL@(CNT)=FILE_";"_FLD_";"_SUBFLD_"^"_(FLDNM("LABEL"))_"^"_MCNT_"^"_$G(XUARR(SUBFILE,IENS,SUBFLD,"I"))_"^"_$G(XUARR(SUBFILE,IENS,SUBFLD,"E")) S MCNT=MCNT+1,CNT=CNT+1 + .; + .I FLD=8932.1 D Q ;PERSON CLASS multiple + ..N IENS,MCNT,SUBFILE,SUBFLD + ..S MCNT=1,SUBFILE=200.05 + ..I '$D(XUARR(SUBFILE)) D Q ;No Person Class(es) + ...F SUBFLD=.01,2,3 D + ....D FIELD^DID(SUBFILE,SUBFLD,"","LABEL","FLDNM") + ....S @XUGBL@(CNT)=FILE_";"_FLD_";"_SUBFLD_"^"_(FLDNM("LABEL"))_"^"_MCNT_"^^",CNT=CNT+1 + ..S IENS="" F S IENS=$O(XUARR(SUBFILE,IENS)) Q:IENS="" D + ...F SUBFLD=.01,2,3 D + ....D FIELD^DID(SUBFILE,SUBFLD,"","LABEL","FLDNM") + ....S @XUGBL@(CNT)=FILE_";"_FLD_";"_SUBFLD_"^"_(FLDNM("LABEL"))_"^"_MCNT_"^"_$G(XUARR(SUBFILE,IENS,SUBFLD,"I"))_"^"_$G(XUARR(SUBFILE,IENS,SUBFLD,"E")),CNT=CNT+1 + ...S MCNT=MCNT+1 + .; + .S @XUGBL@(CNT)=FILE_";"_FLD_"^"_(FLDNM("LABEL"))_"^^"_XUARR(FILE,XUDUZ_",",FLD,"I")_"^"_XUARR(FILE,XUDUZ_",",FLD,"E") S CNT=CNT+1 ;all other fields ; S XURET=$NA(@XUGBL) Q @@ -125,14 +277,18 @@ ; called from rpc: XUS MVI NEW PERSON UPDATE ; ; Input: - ; XUARR(#) = FILE #;FIELD #^FIELD NAME^INTERNAL VALUE^EXTERNAL VALUE - ; XUARR(0)="200;IEN^DUZ^^" - ; XUARR(#)="200;.01^NAME^^" + ; XUARR(#) = FILE #;FIELD #<;SUBFIELD #><;FILE POINTER>^FIELD NAME^^INTERNAL VALUE^EXTERNAL VALUE + ; <> Denotes optional values. If Counter populated, denotes multiple value <1-n>. + ; XUARR(0)="200;IEN^DUZ^^^" + ; XUARR(#)="200;.01^NAME^^^" ; XUARR(#)="200;205.1^SECID^^" - ; XUARR(#)="200;205.2^SUBJECT ORGANIZATION^^" - ; XUARR(#)="200;205.3^SUBJECT ORGANIZATION ID^^" - ; XUARR(#)="200;205.4^UNIQUE USER ID^^" - ; XUARR(#)="200;205.5^ADUPN^^" + ; XUARR(#)="200;205.2^SUBJECT ORGANIZATION^^^" + ; XUARR(#)="200;205.3^SUBJECT ORGANIZATION ID^^^" + ; XUARR(#)="200;205.4^UNIQUE USER ID^^^" + ; XUARR(#)="200;205.5^ADUPN^^^" + ; **711, Story 977821 (jfw) - Allow additional fields to be updated. + ; XUARR(#)="200;.151^EMAIL ADDRESS^^^" + ; XUARR(#)="200;501.1^NETWORK USERNAME^^^" ; ; Success: ; XURET(0) = 1 @@ -142,7 +298,7 @@ ; XURET(0) = "-1^Invalid User DUZ (null)" ; XURET(0) = "-1^User '"_XUDUZ_"' does not exist" ; XURET(0) = "-1^Invalid Name Component IEN" - ; XURET(0) = "-1^No Data for Name Componet IEN: "_NCIEN + ; XURET(0) = "-1^No Data for Name Component IEN: "_NCIEN ; XURET(0) = "-1^No data to file for record '"_XUDUZ_"' in file 200" ; XURET(0) = "-1^Unable to lock record '"_XUDUZ_"' in file 200" ; XURET(0) = "-1^"_$G(XUERR("DIERR",1,"TEXT",1)) @@ -163,7 +319,7 @@ I '$D(XUARR) S XURET(0)="-1^No data passed" Q ; S ARR="XUARR" - F S ARR=$Q(@ARR) Q:ARR="" S FILENUM=+$P($P(@ARR,"^",1),";",1),FLDNUM=+$P($P(@ARR,"^",1),";",2),FLDNAM=$P(@ARR,"^",2),IDATA=$P(@ARR,"^",3) D I $G(XURET) Q + F S ARR=$Q(@ARR) Q:ARR="" S FILENUM=+$P($P(@ARR,"^",1),";",1),FLDNUM=+$P($P(@ARR,"^",1),";",2),FLDNAM=$P(@ARR,"^",2),IDATA=$P(@ARR,"^",4) D I $G(XURET) Q . I FLDNAM="DUZ" D Q ;first parameter passed . . S XUDUZ=IDATA ;duz ien . . I $G(XUDUZ)="" S XURET(0)="-1^Invalid User DUZ (null)" Q diff --git a/Packages/RPC Broker/Globals/8994+REMOTE PROCEDURE.zwr b/Packages/RPC Broker/Globals/8994+REMOTE PROCEDURE.zwr index 1b53529d7da..68751da8f5f 100644 --- a/Packages/RPC Broker/Globals/8994+REMOTE PROCEDURE.zwr +++ b/Packages/RPC Broker/Globals/8994+REMOTE PROCEDURE.zwr @@ -1,6 +1,6 @@ OSEHRA ZGO Export: REMOTE PROCEDURE -29-AUG-2019 20:21:09 ZWR -^XWB(8994,0)="REMOTE PROCEDURE^8994^3834^3634" +30-AUG-2019 00:28:43 ZWR +^XWB(8994,0)="REMOTE PROCEDURE^8994^3835^3635" ^XWB(8994,1,0)="XWB EGCHO STRING^ECHO1^XWBZ1^1^R" ^XWB(8994,1,1,0)="^^2^2^2970825^^" ^XWB(8994,1,1,1,0)="This RPC receives a string which will be sent right back to the client." @@ -73428,89 +73428,164 @@ OSEHRA ZGO Export: REMOTE PROCEDURE ^XWB(8994,3797,3,0)="^^1^1^3171201^" ^XWB(8994,3797,3,1,0)="Contents of field #1918.5." ^XWB(8994,3798,0)="XUS MVI NEW PERSON GET^GET^XUMVINPU^4^A^^^1^1^^0" -^XWB(8994,3798,1,0)="^8994.01^2^2^3180321^^^^" +^XWB(8994,3798,1,0)="^8994.01^3^3^3190515^^^^" ^XWB(8994,3798,1,1,0)="This restricted RPC is used exclusively by the Master Veteran Index (MVI) " -^XWB(8994,3798,1,2,0)="to retrieve data (by DUZ or SECID) from the VistA NEW PERSON file (#200)." -^XWB(8994,3798,2,0)="^8994.02A^2^2" +^XWB(8994,3798,1,2,0)="to retrieve data (by DUZ, SECID, NPI or SSN) from the VistA NEW PERSON " +^XWB(8994,3798,1,3,0)="file (#200)." +^XWB(8994,3798,2,0)="^8994.02A^4^4" ^XWB(8994,3798,2,1,0)="DUZ^1^40^0^1" ^XWB(8994,3798,2,1,1,0)="^8994.021^1^1^3180309^^" ^XWB(8994,3798,2,1,1,1,0)="File IEN in the NEW PERSON file (#200)" ^XWB(8994,3798,2,2,0)="SECID^1^40^0^2" ^XWB(8994,3798,2,2,1,0)="^8994.021^1^1^3180321^^^^" ^XWB(8994,3798,2,2,1,1,0)="SECID field (#205.1) in the NEW PERSON file (#200)" +^XWB(8994,3798,2,3,0)="NPI^1^10^0^3" +^XWB(8994,3798,2,3,1,0)="^^2^2^3190417^" +^XWB(8994,3798,2,3,1,1,0)="NPI (National Provider Identifier) field (#41.99) in the NEW PERSON file " +^XWB(8994,3798,2,3,1,2,0)="(#200)." +^XWB(8994,3798,2,4,0)="SSN^1^9^0^4" +^XWB(8994,3798,2,4,1,0)="^8994.021^1^1^3190515^^^^" +^XWB(8994,3798,2,4,1,1,0)="SSN (Social Security Number) field (#9) in the NEW PERSON file (#200)." ^XWB(8994,3798,2,"B","DUZ",1)="" +^XWB(8994,3798,2,"B","NPI",3)="" ^XWB(8994,3798,2,"B","SECID",2)="" +^XWB(8994,3798,2,"B","SSN",4)="" ^XWB(8994,3798,2,"PARAMSEQ",1,1)="" ^XWB(8994,3798,2,"PARAMSEQ",2,2)="" -^XWB(8994,3798,3,0)="^^47^47^3180321^" +^XWB(8994,3798,2,"PARAMSEQ",3,3)="" +^XWB(8994,3798,2,"PARAMSEQ",4,4)="" +^XWB(8994,3798,3,0)="^^108^108^3190515^" ^XWB(8994,3798,3,1,0)=" Success:" ^XWB(8994,3798,3,2,0)=" XURET = ^TMP(""XUMVINPU"",$J)" -^XWB(8994,3798,3,3,0)=" @XURET@(#) = FILE #;FIELD #^FIELD NAME^INTERNAL VALUE^EXTERNAL VALUE" -^XWB(8994,3798,3,4,0)=" @XURET@(1)=""200;IEN^DUZ^^""" -^XWB(8994,3798,3,5,0)=" @XURET@(2)=""200;.01^NAME^^""" -^XWB(8994,3798,3,6,0)=" @XURET@(3)=""200;7^DISUSER^^""" -^XWB(8994,3798,3,7,0)=" @XURET@(4)=""200;9.2^TERMINATION DATE^^""" -^XWB(8994,3798,3,8,0)=" @XURET@(5)=""200;9.4^Termination Reason^^""" -^XWB(8994,3798,3,9,0)=" @XURET@(6)=""200;15^PROHIBITED TIMES FOR SIGN-ON^^""" -^XWB(8994,3798,3,10,0)=" @XURET@(7)=""200;11.2^DATE VERIFY CODE LAST CHANGED^^""" -^XWB(8994,3798,3,11,0)=" @XURET@(8)=""200;.111^STREET ADDRESS 1^^""" -^XWB(8994,3798,3,12,0)=" @XURET@(9)=""200;.132^OFFICE PHONE^^""" -^XWB(8994,3798,3,13,0)=" @XURET@(10)=""200;.151^EMAIL ADDRESS^^""" -^XWB(8994,3798,3,14,0)=" @XURET@(11)=""200;30^DATE ENTERED^^""" -^XWB(8994,3798,3,15,0)=" @XURET@(12)=""200;31^CREATOR^^""" -^XWB(8994,3798,3,16,0)=" @XURET@(13)=""200;9^SSN^^""" -^XWB(8994,3798,3,17,0)=" @XURET@(14)=""200;202^LAST SIGN-ON DATE/TIME^""" -^XWB(8994,3798,3,18,0)=" @XURET@(15)=""200;202.02^XUS Logon Attempt Count^^""" -^XWB(8994,3798,3,19,0)=" @XURET@(16)=""200;202.03^XUS Active User^^""" -^XWB(8994,3798,3,20,0)=" @XURET@(17)=""200;202.04^Entry Last Edit Date^^""" -^XWB(8994,3798,3,21,0)=" @XURET@(18)=""200;202.05^LOCKOUT USER UNTIL^^""" -^XWB(8994,3798,3,22,0)=" @XURET@(19)=""200.02;.01^DIVISION^1^^""" -^XWB(8994,3798,3,23,0)=" @XURET@(20)=""200.02;.01^DIVISION^2" -^XWB(8994,3798,3,24,0)=" @XURET@(21)=""200;10.1^NAME COMPONENTS^^""" -^XWB(8994,3798,3,25,0)=" @XURET@(22)=""20;1^FAMILY (LAST) NAME^^""" -^XWB(8994,3798,3,26,0)=" @XURET@(23)=""20;2^GIVEN (FIRST) NAME^^""" -^XWB(8994,3798,3,27,0)=" @XURET@(24)=""20;3^MIDDLE NAME^^""" -^XWB(8994,3798,3,28,0)=" @XURET@(25)=""20;4^PREFIX^^""" -^XWB(8994,3798,3,29,0)=" @XURET@(26)=""20;5^SUFFIX^^""" -^XWB(8994,3798,3,30,0)=" @XURET@(27)=""20;6^DEGREE^^""" -^XWB(8994,3798,3,31,0)=" @XURET@(28)=""200;29^SERVICE/SECTION^^""" -^XWB(8994,3798,3,32,0)=" @XURET@(29)=""200;201^PRIMARY MENU OPTION^^""" -^XWB(8994,3798,3,33,0)=" @XURET@(30)=""200.03;.01^SECONDARY MENU OPTIONS^1^^""" -^XWB(8994,3798,3,34,0)=" @XURET@(31)=""200.03;.01^SECONDARY MENU OPTIONS^2^^""" -^XWB(8994,3798,3,35,0)=" @XURET@(32)=""200.03;.01^SECONDARY MENU OPTIONS^3^^""" -^XWB(8994,3798,3,36,0)=" @XURET@(33)=""200;205.1^SECID^^""" -^XWB(8994,3798,3,37,0)=" @XURET@(34)=""200;205.2^SUBJECT ORGANIZATION^^""" -^XWB(8994,3798,3,38,0)=" @XURET@(35)=""200;205.3^SUBJECT ORGANIZATION ID^^""" -^XWB(8994,3798,3,39,0)=" @XURET@(36)=""200;205.4^UNIQUE USER ID^^""" -^XWB(8994,3798,3,40,0)=" @XURET@(37)=""200;205.5^ADUPN^^""" -^XWB(8994,3798,3,41,0)=" @XURET@(38)=""200;501.1^NETWORK USERNAME^^""" -^XWB(8994,3798,3,42,0)=" " -^XWB(8994,3798,3,43,0)=" Fail:" -^XWB(8994,3798,3,44,0)=" XURET = ^TMP(""XUMVINPU"",$J)" -^XWB(8994,3798,3,45,0)=" @XURET@(1)=""-1^Invalid User""" -^XWB(8994,3798,3,46,0)=" or" -^XWB(8994,3798,3,47,0)=" @XURET@(1)=""-1^No Data for User: ######""" +^XWB(8994,3798,3,3,0)=" @XURET@(#) = FILE #;FIELD #<;SUBFIELD #><;FILE POINTER>^FIELD " +^XWB(8994,3798,3,4,0)="NAME^^INTERNAL VALUE^EXTERNAL VALUE" +^XWB(8994,3798,3,5,0)=" <> Denotes optional values. If Counter populated, denotes multiple " +^XWB(8994,3798,3,6,0)=" value <1-n>" +^XWB(8994,3798,3,7,0)=" " +^XWB(8994,3798,3,8,0)=" @XURET@(#)=""200;IEN^DUZ^^^""" +^XWB(8994,3798,3,9,0)=" @XURET@(#)=""200;.01^NAME^^^""" +^XWB(8994,3798,3,10,0)=" @XURET@(#)=""200;4^SEX^^^""" +^XWB(8994,3798,3,11,0)=" @XURET@(#)=""200;8^TITLE^^^""" +^XWB(8994,3798,3,12,0)=" @XURET@(#)=""200;7^DISUSER^^^""" +^XWB(8994,3798,3,13,0)=" @XURET@(#)=""200;9.2^TERMINATION DATE^^^""" +^XWB(8994,3798,3,14,0)=" @XURET@(#)=""200;9.4^Termination Reason^^^""" +^XWB(8994,3798,3,15,0)=" @XURET@(#)=""200;15^PROHIBITED TIMES FOR SIGN-ON^^^""" +^XWB(8994,3798,3,16,0)=" @XURET@(#)=""200;11.2^DATE VERIFY CODE LAST CHANGED^^^""" +^XWB(8994,3798,3,17,0)=" @XURET@(#)=""200;.111^STREET ADDRESS 1^^^""" +^XWB(8994,3798,3,18,0)=" @XURET@(#)=""200;.112^STREET ADDRESS 2^^^""" +^XWB(8994,3798,3,19,0)=" @XURET@(#)=""200;.113^STREET ADDRESS 3^^^""" +^XWB(8994,3798,3,20,0)=" @XURET@(#)=""200;.114^CITY^^^""" +^XWB(8994,3798,3,21,0)=" @XURET@(#)=""200;.115^STATE^^^""" +^XWB(8994,3798,3,22,0)=" @XURET@(#)=""200;.116^ZIP CODE^^^""" +^XWB(8994,3798,3,23,0)=" @XURET@(#)=""200;.132^OFFICE PHONE^^^"" " +^XWB(8994,3798,3,24,0)=" @XURET@(#)=""200;.136^FAX NUMBER^^^""" +^XWB(8994,3798,3,25,0)=" @XURET@(#)=""200;.151^EMAIL ADDRESS^^^""" +^XWB(8994,3798,3,26,0)=" @XURET@(#)=""200;30^DATE ENTERED^^^""" +^XWB(8994,3798,3,27,0)=" @XURET@(#)=""200;31^CREATOR^^^""" +^XWB(8994,3798,3,28,0)=" @XURET@(#)=""200;41.99^NPI^^^""" +^XWB(8994,3798,3,29,0)=" @XURET@(#)=""200;9^SSN^^^""" +^XWB(8994,3798,3,30,0)=" @XURET@(#)=""200;202^LAST SIGN-ON DATE/TIME^^^""" +^XWB(8994,3798,3,31,0)=" @XURET@(#)=""200;202.02^XUS Logon Attempt Count^^^""" +^XWB(8994,3798,3,32,0)=" @XURET@(#)=""200;202.03^XUS Active User^^^""" +^XWB(8994,3798,3,33,0)=" @XURET@(#)=""200;202.04^Entry Last Edit Date^^^""" +^XWB(8994,3798,3,34,0)=" @XURET@(#)=""200;202.05^LOCKOUT USER UNTIL^^^""" +^XWB(8994,3798,3,35,0)=" @XURET@(#)=""200;16;.01^DIVISION^<1-n>^^""" +^XWB(8994,3798,3,36,0)=" @XURET@(#)=""200;10.1^NAME COMPONENTS^^^""" +^XWB(8994,3798,3,37,0)=" @XURET@(#)=""20;1^FAMILY (LAST) NAME^^^""" +^XWB(8994,3798,3,38,0)=" @XURET@(#)=""20;2^GIVEN (FIRST) NAME^^^""" +^XWB(8994,3798,3,39,0)=" @XURET@(#)=""20;3^MIDDLE NAME^^^""" +^XWB(8994,3798,3,40,0)=" @XURET@(#)=""20;4^PREFIX^^^""" +^XWB(8994,3798,3,41,0)=" @XURET@(#)=""20;5^SUFFIX^^^""" +^XWB(8994,3798,3,42,0)=" @XURET@(#)=""20;6^DEGREE^^^""" +^XWB(8994,3798,3,43,0)=" @XURET@(#)=""200;29^SERVICE/SECTION^^^""" +^XWB(8994,3798,3,44,0)=" @XURET@(#)=""200;201^PRIMARY MENU OPTION^^^""" +^XWB(8994,3798,3,45,0)=" @XURET@(#)=""200;203;.01^SECONDARY MENU OPTIONS^<1-n>^^""" +^XWB(8994,3798,3,46,0)=" @XURET@(#)=""200;51;.01^KEYS^<1-n>^^""" +^XWB(8994,3798,3,47,0)=" @XURET@(#)=""200;205.1^SECID^^^""" +^XWB(8994,3798,3,48,0)=" @XURET@(#)=""200;205.2^SUBJECT ORGANIZATION^^^""" +^XWB(8994,3798,3,49,0)=" @XURET@(#)=""200;205.3^SUBJECT ORGANIZATION ID^^^""" +^XWB(8994,3798,3,50,0)=" @XURET@(#)=""200;205.4^UNIQUE USER ID^^^""" +^XWB(8994,3798,3,51,0)=" @XURET@(#)=""200;205.5^ADUPN^^^""" +^XWB(8994,3798,3,52,0)=" @XURET@(#)=""200;501.1^NETWORK USERNAME^^^""" +^XWB(8994,3798,3,53,0)=" @XURET@(#)=""200;8932.1;.01^PERSON CLASS^<1-n>^^""" +^XWB(8994,3798,3,54,0)=" @XURET@(#)=""200;8932.1;2^EFFECTIVE DATE^<#>^^""" +^XWB(8994,3798,3,55,0)=" @XURET@(#)=""200;8932.1;3^EXPIRATION DATE^<#>^^""" +^XWB(8994,3798,3,56,0)=" @XURET@(#)=""200;53.1^AUTHORIZED TO WRITE MED ORDERS^^^""" +^XWB(8994,3798,3,57,0)=" @XURET@(#)=""200;53.11^DETOX/MAINTENANCE ID NUMBER^^^""" +^XWB(8994,3798,3,58,0)=" @XURET@(#)=""200;53.2^DEA#^^^""" +^XWB(8994,3798,3,59,0)=" @XURET@(#)=""200;747.44^DEA EXPIRATION DATE^^^""" +^XWB(8994,3798,3,60,0)=" @XURET@(#)=""200;53.4^INACTIVE DATE^^^""" +^XWB(8994,3798,3,61,0)=" @XURET@(#)=""200;53.5^PROVIDER CLASS^^^""" +^XWB(8994,3798,3,62,0)=" @XURET@(#)=""200;53.6^PROVIDER TYPE^^^""" +^XWB(8994,3798,3,63,0)=" @XURET@(#)=""200;53.9^REMARKS^^^""" +^XWB(8994,3798,3,64,0)=" @XURET@(#)=""200;53.91^NON-VA PRESCRIBER^^^""" +^XWB(8994,3798,3,65,0)=" @XURET@(#)=""200;53.92^TAX ID^^^""" +^XWB(8994,3798,3,66,0)=" @XURET@(#)=""200;55.1^SCHEDULE II NARCOTIC^^^""" +^XWB(8994,3798,3,67,0)=" @XURET@(#)=""200;55.2^SCHEDULE II NON-NARCOTIC^^^""" +^XWB(8994,3798,3,68,0)=" @XURET@(#)=""200;55.3^SCHEDULE III NARCOTIC^^^""" +^XWB(8994,3798,3,69,0)=" @XURET@(#)=""200;55.4^SCHEDULE III NON-NARCOTIC^^^""" +^XWB(8994,3798,3,70,0)=" @XURET@(#)=""200;55.5^SCHEDULE IV^^^""" +^XWB(8994,3798,3,71,0)=" @XURET@(#)=""200;55.6^SCHEDULE V^^^""" +^XWB(8994,3798,3,72,0)=" " +^XWB(8994,3798,3,73,0)=" **The following are ONLY returned if patch" +^XWB(8994,3798,3,74,0)=" **XU*8.0*688 has been installed." +^XWB(8994,3798,3,75,0)=" **Subscript Counter (#) will denote the DEA Data that belongs to the " +^XWB(8994,3798,3,76,0)=" DEA NUMBER subscript" +^XWB(8994,3798,3,77,0)=" ** New DEA Data will always follow the DEA NUMBER entry!" +^XWB(8994,3798,3,78,0)=" @XURET@(#)=""200;9001^DETOX CALCULATED^^^""" +^XWB(8994,3798,3,79,0)=" @XURET@(#)=""200;53.21;.01;8991.9^DEA NUMBER^<1-n>^^""" +^XWB(8994,3798,3,80,0)=" @XURET@(#)=""200;53.21;.02^INDIVIDUAL DEA SUFFIX^<#>^^""" +^XWB(8994,3798,3,81,0)=" **Only returned if there is a DEA NUMBER (200.5321) value!!**" +^XWB(8994,3798,3,82,0)=" @XURET@(#)=""8991.9;.02^BUSINESS ACTIVITY CODE^<#>^^""" +^XWB(8994,3798,3,83,0)=" @XURET@(#)=""8991.9;.03^DETOX NUMBER^<#>^^""" +^XWB(8994,3798,3,84,0)=" @XURET@(#)=""8991.9;.04^EXPIRATION DATE^<#>^^""" +^XWB(8994,3798,3,85,0)=" @XURET@(#)=""8991.9;.06^USE FOR INPATIENT ORDERS?^<#>^^""" +^XWB(8994,3798,3,86,0)=" @XURET@(#)=""8991.9;.07^TYPE^<#>^^""" +^XWB(8994,3798,3,87,0)=" @XURET@(#)=""8991.9;1.1^NAME (PROVIDER OR INSTITUTION)^<#>^^""" +^XWB(8994,3798,3,88,0)=" @XURET@(#)=""8991.9;1.2^STREET ADDRESS 1^<#>^^""" +^XWB(8994,3798,3,89,0)=" @XURET@(#)=""8991.9;1.3^STREET ADDRESS 2^<#>^^""" +^XWB(8994,3798,3,90,0)=" @XURET@(#)=""8991.9;1.4^STREET ADDRESS 3^<#>^^""" +^XWB(8994,3798,3,91,0)=" @XURET@(#)=""8991.9;1.5^CITY^<#>^^""" +^XWB(8994,3798,3,92,0)=" @XURET@(#)=""8991.9;1.6^STATE^<#>^^""" +^XWB(8994,3798,3,93,0)=" @XURET@(#)=""8991.9;1.7^ZIP CODE^<#>^^""" +^XWB(8994,3798,3,94,0)=" @XURET@(#)=""8991.9;2.1^SCHEDULE II NARCOTIC?^<#>^^""" +^XWB(8994,3798,3,95,0)=" @XURET@(#)=""8991.9;2.2^SCHEDULE II NON-NARCOTIC?^<#>^^""" +^XWB(8994,3798,3,96,0)=" @XURET@(#)=""8991.9;2.3^SCHEDULE III NARCOTIC?^<#>^^""" +^XWB(8994,3798,3,97,0)=" @XURET@(#)=""8991.9;2.4^SCHEDULE III NON-NARCOTIC?^<#>^^""" +^XWB(8994,3798,3,98,0)=" @XURET@(#)=""8991.9;2.5^SCHEDULE IV?^<#>^^""" +^XWB(8994,3798,3,99,0)=" @XURET@(#)=""8991.9;2.6^SCHEDULE V?^<#>^^""" +^XWB(8994,3798,3,100,0)=" @XURET@(#)=""8991.9;10.1^LAST UPDATED BY^<#>^^""" +^XWB(8994,3798,3,101,0)=" @XURET@(#)=""8991.9;10.2^LAST UPDATED DATE/TIME^<#>^^""" +^XWB(8994,3798,3,102,0)=" @XURET@(#)=""8991.9;10.3^LAST DOJ UPDATE DATE/TIME^<#>^^""" +^XWB(8994,3798,3,103,0)=" " +^XWB(8994,3798,3,104,0)=" Fail:" +^XWB(8994,3798,3,105,0)=" XURET = ^TMP(""XUMVINPU"",$J)" +^XWB(8994,3798,3,106,0)=" @XURET@(1)=""-1^Invalid User""" +^XWB(8994,3798,3,107,0)=" or" +^XWB(8994,3798,3,108,0)=" @XURET@(1)=""-1^No Data for User: ######""" ^XWB(8994,3799,0)="XUS MVI NEW PERSON UPDATE^UPDATE^XUMVINPU^1^A^^^^1^^0" -^XWB(8994,3799,1,0)="^8994.01^2^2^3180309^^" +^XWB(8994,3799,1,0)="^8994.01^2^2^3190417^^^" ^XWB(8994,3799,1,1,0)="This restricted RPC is used exclusively by the Master Veteran Index (MVI) " ^XWB(8994,3799,1,2,0)="to update an entry (by DUZ) in the VistA NEW PERSON file (#200)." ^XWB(8994,3799,2,0)="^8994.02A^2^1" ^XWB(8994,3799,2,2,0)="XUARR^2^255^1^1" -^XWB(8994,3799,2,2,1,0)="^8994.021^11^11^3180309^^^^" +^XWB(8994,3799,2,2,1,0)="^^13^13^3190417^" ^XWB(8994,3799,2,2,1,1,0)="The IEN (DUZ) for the NEW PERSON (#200) file is required to file the other" ^XWB(8994,3799,2,2,1,2,0)="fields." ^XWB(8994,3799,2,2,1,3,0)=" " ^XWB(8994,3799,2,2,1,4,0)=" XUARR(#) = FILE #;FIELD #^FIELD NAME^INTERNAL VALUE^EXTERNAL VALUE" ^XWB(8994,3799,2,2,1,5,0)=" XUARR(0)=""200;IEN^DUZ^^""" ^XWB(8994,3799,2,2,1,6,0)=" XUARR(#)=""200;.01^NAME^^""" -^XWB(8994,3799,2,2,1,7,0)=" XUARR(#)=""200;205.1^SECID^^""" -^XWB(8994,3799,2,2,1,8,0)=" XUARR(#)=""200;205.2^SUBJECT ORGANIZATION^^""" -^XWB(8994,3799,2,2,1,9,0)=" XUARR(#)=""200;205.3^SUBJECT ORGANIZATION ID^^""" -^XWB(8994,3799,2,2,1,10,0)=" XUARR(#)=""200;205.4^UNIQUE USER ID^^""" -^XWB(8994,3799,2,2,1,11,0)=" XUARR(#)=""200;205.5^ADUPN^^""" +^XWB(8994,3799,2,2,1,7,0)=" XUARR(#)=""200;.151^EMAIL ADDRESS^^""" +^XWB(8994,3799,2,2,1,8,0)=" XUARR(#)=""200;205.1^SECID^^""" +^XWB(8994,3799,2,2,1,9,0)=" XUARR(#)=""200;205.2^SUBJECT ORGANIZATION^^""" +^XWB(8994,3799,2,2,1,10,0)=" XUARR(#)=""200;205.3^SUBJECT ORGANIZATION ID^^""" +^XWB(8994,3799,2,2,1,11,0)=" XUARR(#)=""200;205.4^UNIQUE USER ID^^""" +^XWB(8994,3799,2,2,1,12,0)=" XUARR(#)=""200;205.5^ADUPN^^""" +^XWB(8994,3799,2,2,1,13,0)=" XUARR(#)=""200;501.1^NETWORK USERNAME^^""" ^XWB(8994,3799,2,"B","XUARR",2)="" ^XWB(8994,3799,2,"PARAMSEQ",1,2)="" -^XWB(8994,3799,3,0)="^^12^12^3180312^" +^XWB(8994,3799,3,0)="^8994.03^12^12^3190417^^" ^XWB(8994,3799,3,1,0)=" Success:" ^XWB(8994,3799,3,2,0)=" XURET(0) = 1" ^XWB(8994,3799,3,3,0)=" " @@ -74278,6 +74353,97 @@ OSEHRA ZGO Export: REMOTE PROCEDURE ^XWB(8994,3834,3,0)="^^2^2^3180608^" ^XWB(8994,3834,3,1,0)="MAGRY(0) When 1st '^'-piece is 0, then an error occured. 2nd piece is the error." ^XWB(8994,3834,3,2,0)="MAGRY(1..n) MAGRY(1..n) = SITE NUMBER ^ DFN ^ ICN ^ CPRSCONTEXTID" +^XWB(8994,3835,0)="XUS MVI ENRICH NEW PERSON^UPDATE^XUMVIENU^1^A^^^^1^^0" +^XWB(8994,3835,1,0)="^8994.01^2^2^3190605^^^^" +^XWB(8994,3835,1,1,0)="This restricted RPC is used exclusively by the Master Veteran Index (MVI) " +^XWB(8994,3835,1,2,0)="to update enriched data in the VistA New Person File (#200)." +^XWB(8994,3835,2,0)="^8994.02A^2^2" +^XWB(8994,3835,2,1,0)="PARAM^2^^1^1" +^XWB(8994,3835,2,1,1,0)="^^59^59^3190605^" +^XWB(8994,3835,2,1,1,1,0)="Required elements:" +^XWB(8994,3835,2,1,1,2,0)=" PARAM(""WHO"")=Station Number of requesting station" +^XWB(8994,3835,2,1,1,3,0)=" PARAM(""NPI"")=National Provider Identifier" +^XWB(8994,3835,2,1,1,4,0)=" " +^XWB(8994,3835,2,1,1,5,0)="Required elements only when FLAG is ""A""" +^XWB(8994,3835,2,1,1,6,0)=" PARAM(""NAME"")=surname|first name|middle name|suffix|full .01 name" +^XWB(8994,3835,2,1,1,7,0)=" " +^XWB(8994,3835,2,1,1,8,0)="Optional elements (only pass those elements you want to update)" +^XWB(8994,3835,2,1,1,9,0)=" PARAM(""ADDRESS DATA"")=street address 1|street address 2|" +^XWB(8994,3835,2,1,1,10,0)=" street address 3|city|state|zip code|office phone|fax number" +^XWB(8994,3835,2,1,1,11,0)=" PARAM(""SubjectOrgan"")=subject organization" +^XWB(8994,3835,2,1,1,12,0)=" Default: ""Department Of Veterans Affairs""" +^XWB(8994,3835,2,1,1,13,0)=" PARAM(""SubjectOrganID"")=subject organization id" +^XWB(8994,3835,2,1,1,14,0)=" Default: ""urn:oid:2.16.840.1.113883.4.349""" +^XWB(8994,3835,2,1,1,15,0)=" " +^XWB(8994,3835,2,1,1,16,0)=" PARAM(""ADUPN"")=adupn" +^XWB(8994,3835,2,1,1,17,0)=" " +^XWB(8994,3835,2,1,1,18,0)=" PARAM(""AuthWriteMedOrders"")=1 or 0 for YES/NO" +^XWB(8994,3835,2,1,1,19,0)=" Default if WHO is 200PIEV and a DEA# is sent: 1 (for YES)" +^XWB(8994,3835,2,1,1,20,0)=" " +^XWB(8994,3835,2,1,1,21,0)=" PARAM(""DEA"",,""DEA"")=Drug Enforcement Agency (DEA) #" +^XWB(8994,3835,2,1,1,22,0)=" PARAM(""DEA"",,""Detox"")= detox number" +^XWB(8994,3835,2,1,1,23,0)=" PARAM(""DEA"",,""DEAExpire"")=expiration date (can be future)" +^XWB(8994,3835,2,1,1,24,0)=" PARAM(""DEA"",,""SchedIINarc"")=1 or 0 for YES/NO" +^XWB(8994,3835,2,1,1,25,0)=" PARAM(""DEA"",,""SchedIINonNarc"")=1 or 0 for YES/NO" +^XWB(8994,3835,2,1,1,26,0)=" PARAM(""DEA"",,""SchedIIINarc"")=1 or 0 for YES/NO" +^XWB(8994,3835,2,1,1,27,0)=" PARAM(""DEA"",,""SchedIIINonNarc"")=1 or 0 for YES/NO" +^XWB(8994,3835,2,1,1,28,0)=" PARAM(""DEA"",,""SchedIV"")=1 or 0 for YES/NO" +^XWB(8994,3835,2,1,1,29,0)=" PARAM(""DEA"",,""SchedV"")=1 or 0 for YES/NO" +^XWB(8994,3835,2,1,1,30,0)=" " +^XWB(8994,3835,2,1,1,31,0)=" PARAM(""DEGREE"")=degrees (codes delimited by a space)" +^XWB(8994,3835,2,1,1,32,0)=" PARAM(""EMAIL"")=email address" +^XWB(8994,3835,2,1,1,33,0)=" PARAM(""GENDER"")=M or F" +^XWB(8994,3835,2,1,1,34,0)=" PARAM(""Inactivate"")=inactive date (can be future)" +^XWB(8994,3835,2,1,1,35,0)=" " +^XWB(8994,3835,2,1,1,36,0)=" PARAM(""NonVAPrescriber"")=1 or 0 for YES/NO" +^XWB(8994,3835,2,1,1,37,0)=" Default if WHO is 200PIEV: 1 (for YES)" +^XWB(8994,3835,2,1,1,38,0)=" " +^XWB(8994,3835,2,1,1,39,0)=" PARAM(""NTUSERNAME"")=network user name" +^XWB(8994,3835,2,1,1,40,0)=" " +^XWB(8994,3835,2,1,1,41,0)=" PARAM(""PersonClass"",,""PersonClass"")=X12 code value" +^XWB(8994,3835,2,1,1,42,0)=" PARAM(""PersonClass"",,""PersonClassActive"")=date" +^XWB(8994,3835,2,1,1,43,0)=" Default if not currently active: TODAY" +^XWB(8994,3835,2,1,1,44,0)=" PARAM(""PersonClass"",,""PersonClassExpire"")=date" +^XWB(8994,3835,2,1,1,45,0)=" " +^XWB(8994,3835,2,1,1,46,0)=" PARAM(""ProviderClass"")=a value from the PROVIDER CLASS file (#7)" +^XWB(8994,3835,2,1,1,47,0)=" PARAM(""ProviderType"")=provider type code|provider type value" +^XWB(8994,3835,2,1,1,48,0)=" " +^XWB(8994,3835,2,1,1,49,0)=" PARAM(""Remarks"")=remarks" +^XWB(8994,3835,2,1,1,50,0)=" Default if WHO is 200PIEV: ""NON-VA PROVIDER""" +^XWB(8994,3835,2,1,1,51,0)=" " +^XWB(8994,3835,2,1,1,52,0)=" PARAM(""SECID"")=secid" +^XWB(8994,3835,2,1,1,53,0)=" PARAM(""TaxID"")=tax id" +^XWB(8994,3835,2,1,1,54,0)=" PARAM(""Termination"")=termination date (cannot be future)" +^XWB(8994,3835,2,1,1,55,0)=" " +^XWB(8994,3835,2,1,1,56,0)=" PARAM(""Title"")=value from TITLE file (#3.1)" +^XWB(8994,3835,2,1,1,57,0)=" Default if WHO is 200PIEV: ""NON-VA PROVIDER""" +^XWB(8994,3835,2,1,1,58,0)=" " +^XWB(8994,3835,2,1,1,59,0)=" PARAM(""UniqueUserID"")=unique user id" +^XWB(8994,3835,2,2,0)="FLAG^1^^1^2" +^XWB(8994,3835,2,2,1,0)="^8994.021^5^5^3190605^^^^" +^XWB(8994,3835,2,2,1,1,0)="This flag controls whether the RPC is adding an NEW PERSON file entry or " +^XWB(8994,3835,2,2,1,2,0)="updating an existing one." +^XWB(8994,3835,2,2,1,3,0)=" " +^XWB(8994,3835,2,2,1,4,0)=" ""U"" : Update an existing entry" +^XWB(8994,3835,2,2,1,5,0)=" ""A"" : Add a new entry" +^XWB(8994,3835,2,"B","FLAG",2)="" +^XWB(8994,3835,2,"B","PARAM",1)="" +^XWB(8994,3835,2,"PARAMSEQ",1,1)="" +^XWB(8994,3835,2,"PARAMSEQ",2,2)="" +^XWB(8994,3835,3,0)="^8994.03^13^13^3190605^^^^" +^XWB(8994,3835,3,1,0)="On success:" +^XWB(8994,3835,3,2,0)=" DUZ of New Person File entry edited or added" +^XWB(8994,3835,3,3,0)=" Returned if there were no issues adding or editing the entry." +^XWB(8994,3835,3,4,0)=" " +^XWB(8994,3835,3,5,0)=" DUZ^-1^ErrorMessage" +^XWB(8994,3835,3,6,0)=" Returned if entry was edited, but some data was not valid and could" +^XWB(8994,3835,3,7,0)=" not be filed." +^XWB(8994,3835,3,8,0)=" " +^XWB(8994,3835,3,9,0)="On failure:" +^XWB(8994,3835,3,10,0)=" -1^ErrorMessage" +^XWB(8994,3835,3,11,0)=" Returned for example if required data was not passed, entry could " +^XWB(8994,3835,3,12,0)=" not be added when FLAG=""A"", or entry could not be found based on" +^XWB(8994,3835,3,13,0)=" the NPI when FLAG=""U""." ^XWB(8994,"B","ACKQAUD1",1578)="" ^XWB(8994,"B","ACKQAUD2",1579)="" ^XWB(8994,"B","ACKQAUD4",2095)="" @@ -77772,6 +77938,7 @@ OSEHRA ZGO Export: REMOTE PROCEDURE ^XWB(8994,"B","XUS KAAJEE GET USER VIA PROXY",2877)="" ^XWB(8994,"B","XUS KAAJEE LOGOUT",2195)="" ^XWB(8994,"B","XUS KEY CHECK",110)="" +^XWB(8994,"B","XUS MVI ENRICH NEW PERSON",3835)="" ^XWB(8994,"B","XUS MVI NEW PERSON DATA",3816)="" ^XWB(8994,"B","XUS MVI NEW PERSON GET",3798)="" ^XWB(8994,"B","XUS MVI NEW PERSON UPDATE",3799)=""