Released SD*5.3*814 SEQ #666 Extracted from mail message **KIDS**:SD*5.3*814^ **INSTALL NAME** SD*5.3*814 "BLD",12795,0) SD*5.3*814^SCHEDULING^0^3220506^y "BLD",12795,1,0) ^^54^54^3220506^ "BLD",12795,1,1,0) VSE-2642 - VistA: Update the SDES routine to place $G around all input "BLD",12795,1,2,0) params "BLD",12795,1,3,0) VSE-2648 - VistA: TMP change exposed error "BLD",12795,1,4,0) VSE-2726 - VistA: Support for UI change to display institution name on top "BLD",12795,1,5,0) banner "BLD",12795,1,6,0) VSE-2695 - VistA: VistA: Update SDES GET USRPROFILE and SDES GET USER "BLD",12795,1,7,0) PROFILE BY DUZ RPCs Return Division Id "BLD",12795,1,8,0) VSE-2268 - VistA: Create RPC to calculate Mission Act Eligibility "BLD",12795,1,9,0) VSE-2433 - Vista: Create wrapper for viewing an appointment "BLD",12795,1,10,0) VSE-2705 - Vista: Eastern European Time Zone offset is not returning valid "BLD",12795,1,11,0) times "BLD",12795,1,12,0) VSE-2794 - VistA: Modify routine SDECDATE to correct offset validation "BLD",12795,1,13,0) VSE-2795 - VistA: Create a new RPC that accepts a list of patient DFNs "BLD",12795,1,14,0) and returns insurance indicators. "BLD",12795,1,15,0) VSE-2748 - VistA: Update SDES CREATE APPT #409.84 RPC "BLD",12795,1,16,0) VSE-2754 - VistA: Update SDES CREATE APPT #44 "BLD",12795,1,17,0) VSE-2432 - VistA: Create wrapper RPC for adding an appointment "BLD",12795,1,18,0) VSE-2933 - VistA: Update SDEC EDIT PAT PRE-REGISTRATION RPC "BLD",12795,1,19,0) "BLD",12795,1,20,0) ROUTINES: "BLD",12795,1,21,0) ========= "BLD",12795,1,22,0) SDES - VSE-2642;VSE-2433;VSE-2432 "BLD",12795,1,23,0) SDEC1 - VSE-2726 "BLD",12795,1,24,0) SDEC46 - VSE-2726 "BLD",12795,1,25,0) SDEC07C - VSE-2587 "BLD",12795,1,26,0) SDESBLKANDMOVE1 - VSE-2587 "BLD",12795,1,27,0) SDESMISSIONELG, SDES, SDESJSON - VSE-2268 "BLD",12795,1,28,0) SDESGETUD, SDESGETUDDUZ - VSE-2695 "BLD",12795,1,29,0) SDESAPPTDATA - VSE-2433 (Modified) "BLD",12795,1,30,0) SDESGETAPPTWRAP - VSE-2433 (New) "BLD",12795,1,31,0) SDESUTIL - VSE-2705, VSE-2432 "BLD",12795,1,32,0) SDECDATE - VSE-2794 "BLD",12795,1,33,0) SDESPATRPC - VSE-2795 "BLD",12795,1,34,0) SDUDC - VSE-2648 "BLD",12795,1,35,0) SDESJSON - VSE-2432 "BLD",12795,1,36,0) SDESCRTAPPTWRAP - VSE-2432 "BLD",12795,1,37,0) SDESCREATEAPPT - VSE-2432;VSE-2748 "BLD",12795,1,38,0) SDESCREATEAPPT44- VSE-2432;VSE-2754 "BLD",12795,1,39,0) SDESCREATEAPPT2 - VSE-2432 "BLD",12795,1,40,0) "BLD",12795,1,41,0) OPTIONS: "BLD",12795,1,42,0) ======== "BLD",12795,1,43,0) SDECRPC - VSE-2726;2268 "BLD",12795,1,44,0) SDESRPC - VSE-2268;VSE-2433 "BLD",12795,1,45,0) "BLD",12795,1,46,0) REMOTE PROCEDURES: "BLD",12795,1,47,0) ================== "BLD",12795,1,48,0) SDEC GET INSTITUTION - VSE-2726 "BLD",12795,1,49,0) SDEC EDIT PAT PRE-REGISTRATION - VSE-2933 "BLD",12795,1,50,0) SDES GET MISSION ACT ELIG - VSE-2268 "BLD",12795,1,51,0) SDES GET APPTS BY PATIENT DFN - VSE-2433 "BLD",12795,1,52,0) SDES GET APPTS BY CLIN IEN - VSE-2433 "BLD",12795,1,53,0) SDES GET INSURANCE VERIFY LIST - VSE-2796 "BLD",12795,1,54,0) SDES CREATE APPOINTMENTS - VSE-2432 "BLD",12795,4,0) ^9.64PA^^ "BLD",12795,6) 5^ "BLD",12795,6.3) 11 "BLD",12795,"INIT") SDEC814P "BLD",12795,"KRN",0) ^9.67PA^1.5^24 "BLD",12795,"KRN",.4,0) .4 "BLD",12795,"KRN",.401,0) .401 "BLD",12795,"KRN",.402,0) .402 "BLD",12795,"KRN",.403,0) .403 "BLD",12795,"KRN",.5,0) .5 "BLD",12795,"KRN",.84,0) .84 "BLD",12795,"KRN",1.5,0) 1.5 "BLD",12795,"KRN",1.6,0) 1.6 "BLD",12795,"KRN",1.61,0) 1.61 "BLD",12795,"KRN",1.62,0) 1.62 "BLD",12795,"KRN",3.6,0) 3.6 "BLD",12795,"KRN",3.8,0) 3.8 "BLD",12795,"KRN",9.2,0) 9.2 "BLD",12795,"KRN",9.2,"NM",0) ^9.68A^^ "BLD",12795,"KRN",9.8,0) 9.8 "BLD",12795,"KRN",9.8,"NM",0) ^9.68A^21^18 "BLD",12795,"KRN",9.8,"NM",1,0) SDES^^0^B90920854 "BLD",12795,"KRN",9.8,"NM",2,0) SDEC1^^0^B13653237 "BLD",12795,"KRN",9.8,"NM",3,0) SDEC46^^0^B16645449 "BLD",12795,"KRN",9.8,"NM",6,0) SDESJSON^^0^B104073591 "BLD",12795,"KRN",9.8,"NM",7,0) SDESGETUD^^0^B14150215 "BLD",12795,"KRN",9.8,"NM",8,0) SDESGETUDDUZ^^0^B13360017 "BLD",12795,"KRN",9.8,"NM",9,0) SDESMISSIONELG^^0^B41751347 "BLD",12795,"KRN",9.8,"NM",10,0) SDESUTIL^^0^B25286641 "BLD",12795,"KRN",9.8,"NM",11,0) SDESGETAPPTWRAP^^0^B81712709 "BLD",12795,"KRN",9.8,"NM",12,0) SDESAPPTDATA^^0^B12687619 "BLD",12795,"KRN",9.8,"NM",13,0) SDECDATE^^0^B10065914 "BLD",12795,"KRN",9.8,"NM",14,0) SDESPATRPC^^0^B15821148 "BLD",12795,"KRN",9.8,"NM",15,0) SDUNC^^0^B24539563 "BLD",12795,"KRN",9.8,"NM",17,0) SDESCRTAPPTWRAP^^0^B47766702 "BLD",12795,"KRN",9.8,"NM",18,0) SDESCREATEAPPT^^0^B53991455 "BLD",12795,"KRN",9.8,"NM",19,0) SDESCREATEAPPT2^^0^B20075592 "BLD",12795,"KRN",9.8,"NM",20,0) SDESCREATEAPPT44^^0^B18441985 "BLD",12795,"KRN",9.8,"NM",21,0) SDESGETREGA^^0^B86128131 "BLD",12795,"KRN",9.8,"NM","B","SDEC1",2) "BLD",12795,"KRN",9.8,"NM","B","SDEC46",3) "BLD",12795,"KRN",9.8,"NM","B","SDECDATE",13) "BLD",12795,"KRN",9.8,"NM","B","SDES",1) "BLD",12795,"KRN",9.8,"NM","B","SDESAPPTDATA",12) "BLD",12795,"KRN",9.8,"NM","B","SDESCREATEAPPT",18) "BLD",12795,"KRN",9.8,"NM","B","SDESCREATEAPPT2",19) "BLD",12795,"KRN",9.8,"NM","B","SDESCREATEAPPT44",20) "BLD",12795,"KRN",9.8,"NM","B","SDESCRTAPPTWRAP",17) "BLD",12795,"KRN",9.8,"NM","B","SDESGETAPPTWRAP",11) "BLD",12795,"KRN",9.8,"NM","B","SDESGETREGA",21) "BLD",12795,"KRN",9.8,"NM","B","SDESGETUD",7) "BLD",12795,"KRN",9.8,"NM","B","SDESGETUDDUZ",8) "BLD",12795,"KRN",9.8,"NM","B","SDESJSON",6) "BLD",12795,"KRN",9.8,"NM","B","SDESMISSIONELG",9) "BLD",12795,"KRN",9.8,"NM","B","SDESPATRPC",14) "BLD",12795,"KRN",9.8,"NM","B","SDESUTIL",10) "BLD",12795,"KRN",9.8,"NM","B","SDUNC",15) "BLD",12795,"KRN",19,0) 19 "BLD",12795,"KRN",19,"NM",0) ^9.68A^2^2 "BLD",12795,"KRN",19,"NM",1,0) SDECRPC^^0 "BLD",12795,"KRN",19,"NM",2,0) SDESRPC^^0 "BLD",12795,"KRN",19,"NM","B","SDECRPC",1) "BLD",12795,"KRN",19,"NM","B","SDESRPC",2) "BLD",12795,"KRN",19.1,0) 19.1 "BLD",12795,"KRN",101,0) 101 "BLD",12795,"KRN",409.61,0) 409.61 "BLD",12795,"KRN",771,0) 771 "BLD",12795,"KRN",779.2,0) 779.2 "BLD",12795,"KRN",870,0) 870 "BLD",12795,"KRN",8989.51,0) 8989.51 "BLD",12795,"KRN",8989.52,0) 8989.52 "BLD",12795,"KRN",8994,0) 8994 "BLD",12795,"KRN",8994,"NM",0) ^9.68A^13^7 "BLD",12795,"KRN",8994,"NM",1,0) SDEC GET INSTITUTION^^0 "BLD",12795,"KRN",8994,"NM",2,0) SDES GET MISSION ACT ELIG^^0 "BLD",12795,"KRN",8994,"NM",5,0) SDES GET INSURANCE VERIFY LIST^^0 "BLD",12795,"KRN",8994,"NM",7,0) SDES CREATE APPOINTMENTS^^0 "BLD",12795,"KRN",8994,"NM",10,0) SDEC EDIT PAT PRE-REGISTRATION^^0 "BLD",12795,"KRN",8994,"NM",12,0) SDES GET APPTS BY CLIN IEN^^0 "BLD",12795,"KRN",8994,"NM",13,0) SDES GET APPTS BY PATIENT DFN^^0 "BLD",12795,"KRN",8994,"NM","B","SDEC EDIT PAT PRE-REGISTRATION",10) "BLD",12795,"KRN",8994,"NM","B","SDEC GET INSTITUTION",1) "BLD",12795,"KRN",8994,"NM","B","SDES CREATE APPOINTMENTS",7) "BLD",12795,"KRN",8994,"NM","B","SDES GET APPTS BY CLIN IEN",12) "BLD",12795,"KRN",8994,"NM","B","SDES GET APPTS BY PATIENT DFN",13) "BLD",12795,"KRN",8994,"NM","B","SDES GET INSURANCE VERIFY LIST",5) "BLD",12795,"KRN",8994,"NM","B","SDES GET MISSION ACT ELIG",2) "BLD",12795,"KRN","B",.4,.4) "BLD",12795,"KRN","B",.401,.401) "BLD",12795,"KRN","B",.402,.402) "BLD",12795,"KRN","B",.403,.403) "BLD",12795,"KRN","B",.5,.5) "BLD",12795,"KRN","B",.84,.84) "BLD",12795,"KRN","B",1.5,1.5) "BLD",12795,"KRN","B",1.6,1.6) "BLD",12795,"KRN","B",1.61,1.61) "BLD",12795,"KRN","B",1.62,1.62) "BLD",12795,"KRN","B",3.6,3.6) "BLD",12795,"KRN","B",3.8,3.8) "BLD",12795,"KRN","B",9.2,9.2) "BLD",12795,"KRN","B",9.8,9.8) "BLD",12795,"KRN","B",19,19) "BLD",12795,"KRN","B",19.1,19.1) "BLD",12795,"KRN","B",101,101) "BLD",12795,"KRN","B",409.61,409.61) "BLD",12795,"KRN","B",771,771) "BLD",12795,"KRN","B",779.2,779.2) "BLD",12795,"KRN","B",870,870) "BLD",12795,"KRN","B",8989.51,8989.51) "BLD",12795,"KRN","B",8989.52,8989.52) "BLD",12795,"KRN","B",8994,8994) "BLD",12795,"QUES",0) ^9.62^^ "BLD",12795,"REQB",0) ^9.611^3^3 "BLD",12795,"REQB",1,0) SD*5.3*658^1 "BLD",12795,"REQB",2,0) SD*5.3*813^1 "BLD",12795,"REQB",3,0) SD*5.3*806^1 "BLD",12795,"REQB","B","SD*5.3*658",1) "BLD",12795,"REQB","B","SD*5.3*806",3) "BLD",12795,"REQB","B","SD*5.3*813",2) "INIT") SDEC814P "KRN",19,2922543,-1) 0^1 "KRN",19,2922543,0) SDECRPC^CLINICAL SCHEDULING PROCEDURE CALLS^^B^^^^^^^^SCHEDULING^y "KRN",19,2922543,1,0) ^19.06^2^2^3220309^^^^ "KRN",19,2922543,1,1,0) This option hosts RPCs in the SDEC namespace. CLINICAL SCHEDULING users "KRN",19,2922543,1,2,0) must have access to this option in order to use CLINICAL SCHEDULING. "KRN",19,2922543,99.1) 66148,58559 "KRN",19,2922543,"RPC",0) ^19.05P^293^293 "KRN",19,2922543,"RPC",1,0) SDEC ACCGPTYG "KRN",19,2922543,"RPC",2,0) SDEC ACCGROUP "KRN",19,2922543,"RPC",3,0) SDEC ACCTYPE "KRN",19,2922543,"RPC",4,0) SDEC ADDACCG "KRN",19,2922543,"RPC",5,0) SDEC ADDACCTY "KRN",19,2922543,"RPC",6,0) SDEC ADDAGI "KRN",19,2922543,"RPC",7,0) SDEC ADDRES "KRN",19,2922543,"RPC",8,0) SDEC ADDRESU "KRN",19,2922543,"RPC",9,0) SDEC ADDRG "KRN",19,2922543,"RPC",10,0) SDEC ADDRGI "KRN",19,2922543,"RPC",12,0) SDEC APBLKOV "KRN",19,2922543,"RPC",13,0) SDEC APPADD "KRN",19,2922543,"RPC",13,1) "KRN",19,2922543,"RPC",14,0) SDEC APPDEL "KRN",19,2922543,"RPC",16,0) SDEC APPTLETR "KRN",19,2922543,"RPC",17,0) SDEC APPTYPES "KRN",19,2922543,"RPC",18,0) SDEC AVADD "KRN",19,2922543,"RPC",19,0) SDEC AVDEL "KRN",19,2922543,"RPC",20,0) SDEC AVDELDT "KRN",19,2922543,"RPC",21,0) SDEC CANCKOUT "KRN",19,2922543,"RPC",22,0) SDEC CANREAS "KRN",19,2922543,"RPC",23,0) SDEC CHECKIN "KRN",19,2922543,"RPC",24,0) SDEC CHECKOUT "KRN",19,2922543,"RPC",25,0) SDEC CLINALL "KRN",19,2922543,"RPC",27,0) SDEC CLINDIS "KRN",19,2922543,"RPC",28,0) SDEC CLINDISW "KRN",19,2922543,"RPC",29,0) SDEC CLINLET "KRN",19,2922543,"RPC",30,0) SDEC CLINLETW "KRN",19,2922543,"RPC",31,0) SDEC CLINPROV "KRN",19,2922543,"RPC",32,0) SDEC CLINSET "KRN",19,2922543,"RPC",33,0) SDEC CLINSTOP "KRN",19,2922543,"RPC",34,0) SDEC COPYAPPT "KRN",19,2922543,"RPC",35,0) SDEC CPCANC "KRN",19,2922543,"RPC",36,0) SDEC CPSTAT "KRN",19,2922543,"RPC",37,0) SDEC CRSCHED "KRN",19,2922543,"RPC",38,0) SDEC CSLOTSCH "KRN",19,2922543,"RPC",39,0) SDEC CURFACG "KRN",19,2922543,"RPC",40,0) SDEC CVARAPPT "KRN",19,2922543,"RPC",41,0) SDEC DELAG "KRN",19,2922543,"RPC",42,0) SDEC DELAGI "KRN",19,2922543,"RPC",43,0) SDEC DELRESGP "KRN",19,2922543,"RPC",44,0) SDEC DELRGI "KRN",19,2922543,"RPC",45,0) SDEC DELRU "KRN",19,2922543,"RPC",46,0) SDEC EDITAPPT "KRN",19,2922543,"RPC",47,0) SDEC EHRPT "KRN",19,2922543,"RPC",48,0) SDEC GETFAC "KRN",19,2922543,"RPC",49,0) SDEC GETREGA "KRN",19,2922543,"RPC",50,0) SDEC HLTHSUMM "KRN",19,2922543,"RPC",51,0) SDEC HOLIDAY "KRN",19,2922543,"RPC",52,0) SDEC HOSPLOC "KRN",19,2922543,"RPC",53,0) SDEC IMHERE "KRN",19,2922543,"RPC",54,0) SDEC NEWPERS "KRN",19,2922543,"RPC",55,0) SDEC NOSHOPAT "KRN",19,2922543,"RPC",56,0) SDEC NOSHOW "KRN",19,2922543,"RPC",57,0) SDEC OVBOOK "KRN",19,2922543,"RPC",58,0) SDEC PATAPPTD "KRN",19,2922543,"RPC",59,0) SDEC PATAPPTH "KRN",19,2922543,"RPC",60,0) SDEC PROVALL "KRN",19,2922543,"RPC",61,0) SDEC PROVCLIN "KRN",19,2922543,"RPC",62,0) SDEC PTLOOKRS "KRN",19,2922543,"RPC",63,0) SDEC PWH "KRN",19,2922543,"RPC",64,0) SDEC RAISEVNT "KRN",19,2922543,"RPC",66,0) SDEC REBKLIST "KRN",19,2922543,"RPC",67,0) SDEC REBKNEXT "KRN",19,2922543,"RPC",68,0) SDEC REGEVENT "KRN",19,2922543,"RPC",69,0) SDEC RESGPUSR "KRN",19,2922543,"RPC",70,0) SDEC RESGRPUS "KRN",19,2922543,"RPC",71,0) SDEC RESLETRF "KRN",19,2922543,"RPC",72,0) SDEC RESLETRS "KRN",19,2922543,"RPC",73,0) SDEC RESOURCE "KRN",19,2922543,"RPC",74,0) SDEC RESUSER "KRN",19,2922543,"RPC",75,0) SDEC SCHUSR "KRN",19,2922543,"RPC",76,0) SDEC SEARCHAV "KRN",19,2922543,"RPC",77,0) SDEC SETFAC "KRN",19,2922543,"RPC",78,0) SDEC SETRBOOK "KRN",19,2922543,"RPC",79,0) SDEC SPACEBAR "KRN",19,2922543,"RPC",80,0) SDEC SUSRINFO "KRN",19,2922543,"RPC",81,0) SDEC SVSPALL "KRN",19,2922543,"RPC",82,0) SDEC SYSSTAT "KRN",19,2922543,"RPC",83,0) SDEC TPBLKOV "KRN",19,2922543,"RPC",85,0) SDEC UNREGEV "KRN",19,2922543,"RPC",86,0) SDEC WAITLIST "KRN",19,2922543,"RPC",87,0) SDEC WLCLOSE "KRN",19,2922543,"RPC",88,0) SDEC WLGET "KRN",19,2922543,"RPC",89,0) SDEC WLSET "KRN",19,2922543,"RPC",90,0) SDEC PREFGET "KRN",19,2922543,"RPC",91,0) SDEC PREFGETV "KRN",19,2922543,"RPC",92,0) SDEC PREFSET "KRN",19,2922543,"RPC",93,0) SDEC FAPPTGET "KRN",19,2922543,"RPC",94,0) SDEC RECAPGET "KRN",19,2922543,"RPC",95,0) SDEC RECDSET "KRN",19,2922543,"RPC",96,0) SDEC RECGET "KRN",19,2922543,"RPC",97,0) SDEC RECPRGET "KRN",19,2922543,"RPC",98,0) SDEC RECSET "KRN",19,2922543,"RPC",99,0) SDEC REQGET "KRN",19,2922543,"RPC",100,0) SDEC PCSTGET "KRN",19,2922543,"RPC",101,0) SDEC PCST2GET "KRN",19,2922543,"RPC",102,0) SDEC PCSGET "KRN",19,2922543,"RPC",103,0) SDEC PTSET "KRN",19,2922543,"RPC",104,0) SDEC PTINQ "KRN",19,2922543,"RPC",106,0) SDEC SUMMAGET "KRN",19,2922543,"RPC",107,0) SDEC APPIDGET "KRN",19,2922543,"RPC",108,0) SDEC FACLIST "KRN",19,2922543,"RPC",109,0) SDEC CGET "KRN",19,2922543,"RPC",110,0) SDEC ETHGET "KRN",19,2922543,"RPC",111,0) SDEC ETHCMGET "KRN",19,2922543,"RPC",112,0) SDEC RACEGET "KRN",19,2922543,"RPC",113,0) SDEC REP1GET "KRN",19,2922543,"RPC",114,0) SDEC WLPCSET "KRN",19,2922543,"RPC",115,0) SDEC APPSDGET "KRN",19,2922543,"RPC",116,0) SDEC WLOPEN "KRN",19,2922543,"RPC",117,0) SDEC ARCLOSE "KRN",19,2922543,"RPC",118,0) SDEC ARDGET "KRN",19,2922543,"RPC",119,0) SDEC ARGET "KRN",19,2922543,"RPC",120,0) SDEC ARMRTGET "KRN",19,2922543,"RPC",121,0) SDEC ARMRTSET "KRN",19,2922543,"RPC",122,0) SDEC AROPEN "KRN",19,2922543,"RPC",123,0) SDEC ARPCSET "KRN",19,2922543,"RPC",124,0) SDEC ARSET "KRN",19,2922543,"RPC",125,0) SDEC HIDE "KRN",19,2922543,"RPC",126,0) SDEC PRIV "KRN",19,2922543,"RPC",127,0) SDEC WLHIDE "KRN",19,2922543,"RPC",128,0) SDECAR ARAPPT "KRN",19,2922543,"RPC",129,0) SDECAR ARMRTC "KRN",19,2922543,"RPC",130,0) SDECDEV DEVICE "KRN",19,2922543,"RPC",131,0) SDECDIS DISABIL "KRN",19,2922543,"RPC",132,0) SDECIDX GETREC "KRN",19,2922543,"RPC",133,0) SDECIDX RECCNT "KRN",19,2922543,"RPC",134,0) SDECLK LOCK "KRN",19,2922543,"RPC",135,0) SDECLK UNLOCK "KRN",19,2922543,"RPC",136,0) SDECLOC PRIVLOC "KRN",19,2922543,"RPC",137,0) SDECLOC UPDPRIV "KRN",19,2922543,"RPC",138,0) SDECRMG RECCNT "KRN",19,2922543,"RPC",139,0) SDECRMG RMG "KRN",19,2922543,"RPC",140,0) SDECRMG2 URGENCY "KRN",19,2922543,"RPC",141,0) DG SENSITIVE RECORD ACCESS "KRN",19,2922543,"RPC",142,0) DG CHK BS5 XREF ARRAY "KRN",19,2922543,"RPC",143,0) ORPRF HASFLG "KRN",19,2922543,"RPC",144,0) ORPRF GETFLG "KRN",19,2922543,"RPC",145,0) ORWPT DIEDON "KRN",19,2922543,"RPC",146,0) ORWPT ID INFO "KRN",19,2922543,"RPC",147,0) ORWPT LAST5 "KRN",19,2922543,"RPC",148,0) ORWPT LAST5 RPL "KRN",19,2922543,"RPC",149,0) ORWU USERINFO "KRN",19,2922543,"RPC",150,0) SD VSE FILTER RPC "KRN",19,2922543,"RPC",151,0) SD VSE REPORT RPC "KRN",19,2922543,"RPC",152,0) SDEC APPSLOTS "KRN",19,2922543,"RPC",154,0) SDEC NETLOC "KRN",19,2922543,"RPC",155,0) SDEC NOAVAIL "KRN",19,2922543,"RPC",156,0) SDECAPP GETYPE "KRN",19,2922543,"RPC",157,0) SDECAR ARMULT "KRN",19,2922543,"RPC",158,0) SDECAR AUDITGET "KRN",19,2922543,"RPC",159,0) SDECCAP CAN "KRN",19,2922543,"RPC",160,0) SDECCAP GET "KRN",19,2922543,"RPC",161,0) SDECCAP SET "KRN",19,2922543,"RPC",162,0) SDECWL AUDITGET "KRN",19,2922543,"RPC",163,0) ROR LIST STATES "KRN",19,2922543,"RPC",164,0) XUS SIGNON SETUP "KRN",19,2922543,"RPC",165,0) XUS GET VISITOR "KRN",19,2922543,"RPC",166,0) XUS SET VISITOR "KRN",19,2922543,"RPC",167,0) XUS AV CODE "KRN",19,2922543,"RPC",168,0) SDEC01 CLINICS "KRN",19,2922543,"RPC",169,0) SDEC57 OBM "KRN",19,2922543,"RPC",170,0) SDECAR3 AREDIT "KRN",19,2922543,"RPC",171,0) SDECDEM MARITAL "KRN",19,2922543,"RPC",172,0) SDECDEM RELIGION "KRN",19,2922543,"RPC",173,0) SDECDEM ZIPLINK "KRN",19,2922543,"RPC",174,0) SDECDEV DEV "KRN",19,2922543,"RPC",175,0) SDECDEV PRINT "KRN",19,2922543,"RPC",176,0) SDECRMGP GETRMGUP "KRN",19,2922543,"RPC",177,0) SDECRMGP PUTRMGUP "KRN",19,2922543,"RPC",178,0) SDECU4 GETFONT "KRN",19,2922543,"RPC",179,0) SDECU4 PUTFONT "KRN",19,2922543,"RPC",180,0) ORWU CLINLOC "KRN",19,2922543,"RPC",181,0) XUS GET USER INFO "KRN",19,2922543,"RPC",182,0) XUS GET CCOW TOKEN "KRN",19,2922543,"RPC",183,0) ORWPT SHARE "KRN",19,2922543,"RPC",184,0) ORWPT TOP "KRN",19,2922543,"RPC",185,0) DG SENSITIVE RECORD BULLETIN "KRN",19,2922543,"RPC",186,0) SDEC EP CLASSIFICATION "KRN",19,2922543,"RPC",187,0) SDEC EP CPT "KRN",19,2922543,"RPC",188,0) SDEC EP DEMOGRAPHICS "KRN",19,2922543,"RPC",189,0) SDEC EP DIAGNOSIS "KRN",19,2922543,"RPC",190,0) SDEC EP EVENT LOG "KRN",19,2922543,"RPC",191,0) SDEC EP PROVIDER "KRN",19,2922543,"RPC",192,0) SDEC EP PT INFO "KRN",19,2922543,"RPC",193,0) SDEC EP STOP CODE "KRN",19,2922543,"RPC",194,0) SDEC EP WAIT TIME "KRN",19,2922543,"RPC",195,0) SDEC APPT STATUS "KRN",19,2922543,"RPC",196,0) SDEC ELIGIBILITY "KRN",19,2922543,"RPC",197,0) SDEC CONTACT DISPLAY "KRN",19,2922543,"RPC",198,0) SDEC CONTACT MULTI-DISPLAY "KRN",19,2922543,"RPC",199,0) SDEC CONTACT NEW "KRN",19,2922543,"RPC",200,0) SDEC CONTACT SEQUENCE "KRN",19,2922543,"RPC",201,0) SDEC CONTACT STOP CODE "KRN",19,2922543,"RPC",202,0) SDEC CONTACT UPDATE "KRN",19,2922543,"RPC",203,0) SDEC GETPRER "KRN",19,2922543,"RPC",204,0) SDEC ELIG RETURN "KRN",19,2922543,"RPC",205,0) SDEC BOOKHLDY "KRN",19,2922543,"RPC",206,0) SDECAR1 ARGUID "KRN",19,2922543,"RPC",207,0) SDECSTNG HELPLINK "KRN",19,2922543,"RPC",208,0) XWB GET VARIABLE VALUE "KRN",19,2922543,"RPC",209,0) SDEC RESCE "KRN",19,2922543,"RPC",210,0) SDEC SUMMGET2 "KRN",19,2922543,"RPC",211,0) SDEC CANCMT "KRN",19,2922543,"RPC",212,0) SDEC VVC_APPT "KRN",19,2922543,"RPC",213,0) ORQQCN DETAIL "KRN",19,2922543,"RPC",214,0) SDEC CLINIC GROUP LOOKUP "KRN",19,2922543,"RPC",215,0) SDEC CLINIC GROUP RETURN "KRN",19,2922543,"RPC",216,0) SDEC GETWLIEN "KRN",19,2922543,"RPC",217,0) SDEC CONTACT DISPLAY SINGLE "KRN",19,2922543,"RPC",218,0) SDEC CONTACT SEQUENCE SINGLE "KRN",19,2922543,"RPC",219,0) SDEC GETVVSMAKEINFO "KRN",19,2922543,"RPC",220,0) SDEC SEARCH VVS PROVIDERS "KRN",19,2922543,"RPC",221,0) SDEC SPACEBAR VVS PRO "KRN",19,2922543,"RPC",225,0) SDEC VVS GET ID "KRN",19,2922543,"RPC",226,0) SDEC VVS DELETE ID "KRN",19,2922543,"RPC",227,0) SDEC VVS SAVE ID "KRN",19,2922543,"RPC",229,0) SDEC GET PATIENT APPT REQ "KRN",19,2922543,"RPC",230,0) SDEC GET PATIENT CONSULTS JSON "KRN",19,2922543,"RPC",231,0) SDEC GET PATIENT CONSULTS "KRN",19,2922543,"RPC",232,0) SDEC GET PATIENT RECALLS "KRN",19,2922543,"RPC",233,0) SDEC GET PATIENT APPT REQ JSON "KRN",19,2922543,"RPC",234,0) SDEC GET PATIENT RECALLS JSON "KRN",19,2922543,"RPC",238,0) SDEC GET ICN "KRN",19,2922543,"RPC",239,0) SDEC GET APPT REQ BY IEN JSON "KRN",19,2922543,"RPC",240,0) SDEC GET PATIENT CONSULT JSON "KRN",19,2922543,"RPC",241,0) SDEC GET PATIENT DEMOG "KRN",19,2922543,"RPC",242,0) SDEC GET PATIENT RECALL BY IEN "KRN",19,2922543,"RPC",243,0) SDEC GET RECALL BY IEN JSON "KRN",19,2922543,"RPC",249,0) SDES GET CHECK-IN STEPS "KRN",19,2922543,"RPC",250,0) SDES GET CHECK-IN STEP "KRN",19,2922543,"RPC",251,0) SDES GET APPTS BY RESOURCE "KRN",19,2922543,"RPC",253,0) SDES GET APPTS BY PATIENT "KRN",19,2922543,"RPC",254,0) SDES GET APPTS BY CLINIC "KRN",19,2922543,"RPC",256,0) SDEC GET RECALLRMV BY DFN JSON "KRN",19,2922543,"RPC",257,0) SDES GET INSURANCE VERIFY REQ "KRN",19,2922543,"RPC",265,0) SDEC SEARCH VVS PROVIDERS JSON "KRN",19,2922543,"RPC",266,0) SDEC GETVVSMAKEINFO JSON "KRN",19,2922543,"RPC",267,0) SDES GET PATIENT REGISTRATION "KRN",19,2922543,"RPC",268,0) SDEC EDIT PAT PRE-REGISTRATION "KRN",19,2922543,"RPC",274,0) SDES CREATE APPT BLK AND MOVE "KRN",19,2922543,"RPC",276,0) SDEC GET STATION ID JSON "KRN",19,2922543,"RPC",282,0) SDES GET APPT BY IEN "KRN",19,2922543,"RPC",283,0) SDES GET CLINIC INFO "KRN",19,2922543,"RPC",284,0) SDES GET APPT CHECK-IN STEPS "KRN",19,2922543,"RPC",285,0) SDES GET APPT CHECK-IN STEP "KRN",19,2922543,"RPC",286,0) SDES GET USRPROFILE "KRN",19,2922543,"RPC",287,0) SDES SET APPT CHECK-IN STEP "KRN",19,2922543,"RPC",288,0) SDES SET CHECK-IN STEP "KRN",19,2922543,"RPC",289,0) SDES GET USER PROFILE BY DUZ "KRN",19,2922543,"RPC",290,0) SDES GET APPTS BY CLINIC LIST "KRN",19,2922543,"RPC",291,0) SDES PRINT PATIENT APPTS "KRN",19,2922543,"RPC",292,0) SDEC GET INSTITUTION "KRN",19,2922543,"RPC",293,0) SDES GET MISSION ACT ELIG "KRN",19,2922543,"U") CLINICAL SCHEDULING PROCEDURE "KRN",19,2922994,-1) 0^2 "KRN",19,2922994,0) SDESRPC^CLINICAL SCHEDULING PROCEDURE CALLS^^B^^^^^^^^ "KRN",19,2922994,1,0) ^19.06^2^2^3220421^^^^ "KRN",19,2922994,1,1,0) This option hosts RPCs in the SDES namespace. CLINICAL SCHEDULING users "KRN",19,2922994,1,2,0) must have access to this option in order to use CLINICAL SCHEDULING. "KRN",19,2922994,99.1) 66196,51818 "KRN",19,2922994,"RPC",0) ^19.05P^63^62 "KRN",19,2922994,"RPC",1,0) SDES SEARCH CLINIC "KRN",19,2922994,"RPC",2,0) SDES GET APPT REQ BY IEN "KRN",19,2922994,"RPC",3,0) SDES GET APPT REQ BY PATIENT "KRN",19,2922994,"RPC",4,0) SDES DISPOSITION APPT REQ "KRN",19,2922994,"RPC",5,0) SDES CREATE APPT REQ "KRN",19,2922994,"RPC",6,0) SDES EDIT APPT REQ "KRN",19,2922994,"RPC",8,0) SDES INACTIVATE/ZZ CLINIC "KRN",19,2922994,"RPC",9,0) SDES GET CLINIC INFO "KRN",19,2922994,"RPC",10,0) SDES CREATE CLINIC "KRN",19,2922994,"RPC",11,0) SDES EDIT CLINIC "KRN",19,2922994,"RPC",12,0) SDES GET CLIN AVAILABILITY "KRN",19,2922994,"RPC",13,0) SDES CREATE CLIN AVAILABILITY "KRN",19,2922994,"RPC",14,0) SDES CANCEL CLIN AVAILABILITY "KRN",19,2922994,"RPC",16,0) SDES DISPOSITION RECALL REQ "KRN",19,2922994,"RPC",17,0) SDES EDIT RECALL REQ "KRN",19,2922994,"RPC",18,0) SDES CREATE RECALL REQ "KRN",19,2922994,"RPC",19,0) SDES GET RECALL BY IEN "KRN",19,2922994,"RPC",20,0) SDES GET RECALLS BY DFN "KRN",19,2922994,"RPC",21,0) SDES EDIT CLINIC AVAILABILITY "KRN",19,2922994,"RPC",22,0) SDES CANCEL APPT "KRN",19,2922994,"RPC",23,0) SDES EDIT CHECK-IN STEP "KRN",19,2922994,"RPC",24,0) SDES GET APPT CHECK-IN STEP "KRN",19,2922994,"RPC",25,0) SDES GET APPT CHECK-IN STEPS "KRN",19,2922994,"RPC",26,0) SDES GET APPTS BY CLINIC "KRN",19,2922994,"RPC",27,0) SDES GET APPTS BY PATIENT "KRN",19,2922994,"RPC",28,0) SDES GET APPTS BY RESOURCE "KRN",19,2922994,"RPC",29,0) SDES GET CHECK-IN STEP "KRN",19,2922994,"RPC",30,0) SDES GET CHECK-IN STEPS "KRN",19,2922994,"RPC",31,0) SDES GET INSURANCE VERIFY REQ "KRN",19,2922994,"RPC",32,0) SDES GET PATIENT REGISTRATION "KRN",19,2922994,"RPC",34,0) SDES GET USRPROFILE "KRN",19,2922994,"RPC",35,0) SDES SET APPT CHECK-IN STEP "KRN",19,2922994,"RPC",36,0) SDES SET CHECK-IN STEP "KRN",19,2922994,"RPC",38,0) SDES GET APPT BY IEN "KRN",19,2922994,"RPC",39,0) SDES EDIT APPT #44 "KRN",19,2922994,"RPC",40,0) SDES CREATE APPT #44 "KRN",19,2922994,"RPC",41,0) SDES GET APPT #44 "KRN",19,2922994,"RPC",42,0) SDES CANCEL APPT #44 "KRN",19,2922994,"RPC",43,0) SDES GET STOPCD DETAIL "KRN",19,2922994,"RPC",44,0) SDES GET PATCH NUMBER "KRN",19,2922994,"RPC",45,0) SDES GET USER PROFILE BY DUZ "KRN",19,2922994,"RPC",46,0) SDES CANCEL APPT #2 "KRN",19,2922994,"RPC",49,0) SDES GET PAT APPT BY IEN #2 "KRN",19,2922994,"RPC",50,0) SDES GET PAT APPTS BY DFN #2 "KRN",19,2922994,"RPC",51,0) SDES CREATE APPT #2 "KRN",19,2922994,"RPC",52,0) SDES EDIT APPT #2 "KRN",19,2922994,"RPC",53,0) SDES GET APPTS BY CLINIC LIST "KRN",19,2922994,"RPC",55,0) SDES CREATE APPT #409.84 "KRN",19,2922994,"RPC",56,0) SDES EDIT APPT #409.84 "KRN",19,2922994,"RPC",57,0) SDES PRINT PATIENT APPTS "KRN",19,2922994,"RPC",58,0) SDES GET MISSION ACT ELIG "KRN",19,2922994,"RPC",59,0) SDES GET APPTS BY PATIENT DFN "KRN",19,2922994,"RPC",60,0) SDES GET APPTS BY CLIN IEN "KRN",19,2922994,"RPC",61,0) SDES GET INSURANCE VERIFY LIST "KRN",19,2922994,"RPC",63,0) SDES CREATE APPOINTMENTS "KRN",19,2922994,"U") CLINICAL SCHEDULING PROCEDURE "KRN",8994,5851,-1) 0^10 "KRN",8994,5851,0) SDEC EDIT PAT PRE-REGISTRATION^PREREG^SDEC1^1^R^0^^0^^^1 "KRN",8994,5851,1,0) ^8994.01^2^2^3220422^^^^ "KRN",8994,5851,1,1,0) Updates patient pre-registration and associated files when a Vetlink "KRN",8994,5851,1,2,0) Kiosk pre-register event occurs. "KRN",8994,5851,2,0) ^8994.02A^3^2 "KRN",8994,5851,2,2,0) DFN^1^30^1^1 "KRN",8994,5851,2,2,1,0) ^^1^1^3211012^ "KRN",8994,5851,2,2,1,1,0) DFN of patient associated with pre-registration event "KRN",8994,5851,2,3,0) PRESTAT^1^30^1^2 "KRN",8994,5851,2,3,1,0) ^8994.021^2^2^3220127^^^ "KRN",8994,5851,2,3,1,1,0) Status Code - code that represents the outcome of the pre-registration "KRN",8994,5851,2,3,1,2,0) interview with the patient "KRN",8994,5851,2,"B","DFN",2) "KRN",8994,5851,2,"B","PRESTAT",3) "KRN",8994,5851,2,"PARAMSEQ",1,2) "KRN",8994,5851,2,"PARAMSEQ",2,3) "KRN",8994,5851,3,0) ^8994.03^12^12^3211012^^ "KRN",8994,5851,3,1,0) B = BUSY "KRN",8994,5851,3,2,0) C = CONNECTED "KRN",8994,5851,3,3,0) D = DEATH "KRN",8994,5851,3,4,0) K = CALL BACK "KRN",8994,5851,3,5,0) M =LEFT CALLBACK MESSAGE "KRN",8994,5851,3,6,0) N = NO ANSWER "KRN",8994,5851,3,7,0) P = NO PHONE "KRN",8994,5851,3,8,0) T = DON'T CALL "KRN",8994,5851,3,9,0) U = UNCOOPERATIVE "KRN",8994,5851,3,10,0) V = PREVIOUSLY UPDATED "KRN",8994,5851,3,11,0) W =WRONG NUMBER "KRN",8994,5851,3,12,0) X = CHANGE INFORMATION "KRN",8994,5919,-1) 0^2 "KRN",8994,5919,0) SDES GET MISSION ACT ELIG^GETMISSIONELG^SDES^2^R^^^^^^1 "KRN",8994,5919,1,0) ^8994.01^5^5^3220309^^ "KRN",8994,5919,1,1,0) Create an RPC to calculate whether patient is mission act eligible based "KRN",8994,5919,1,2,0) on their appt request IEN, PID, and selected appointment date. "KRN",8994,5919,1,3,0) "KRN",8994,5919,1,4,0) Use stop code to determine primary care vs specialty-verify stop codes "KRN",8994,5919,1,5,0) that are primary care. "KRN",8994,5919,2,0) ^8994.02A^6^4 "KRN",8994,5919,2,1,0) APPTREQIEN^1^30^1^1 "KRN",8994,5919,2,1,1,0) ^^1^1^3220309^ "KRN",8994,5919,2,1,1,1,0) Appointment Request IEN "KRN",8994,5919,2,3,0) PID^1^30^1^2 "KRN",8994,5919,2,3,1,0) ^8994.021^1^1^3220311^^^ "KRN",8994,5919,2,3,1,1,0) Patient Indicated Date in ISO format ex-2022-01-19 "KRN",8994,5919,2,5,0) APPTREQTYP^1^30^1^3 "KRN",8994,5919,2,5,1,0) ^8994.021^1^1^3220407^^^ "KRN",8994,5919,2,5,1,1,0) APPOINTMENT REQUEST type - CONSULT, PROCEDURE, APPT, PTCSCH "KRN",8994,5919,2,6,0) EASTRCKNGNMBR^1^30^0^4 "KRN",8994,5919,2,6,1,0) ^^2^2^3220407^ "KRN",8994,5919,2,6,1,1,0) [optional] - Enterprise Appointment Scheduling (EAS) Tracking Number "KRN",8994,5919,2,6,1,2,0) associated to an appointment. "KRN",8994,5919,2,"B","APPTREQIEN",1) "KRN",8994,5919,2,"B","APPTREQTYP",5) "KRN",8994,5919,2,"B","EASTRCKNGNMBR",6) "KRN",8994,5919,2,"B","PID",3) "KRN",8994,5919,2,"PARAMSEQ",1,1) "KRN",8994,5919,2,"PARAMSEQ",2,3) "KRN",8994,5919,2,"PARAMSEQ",3,5) "KRN",8994,5919,2,"PARAMSEQ",4,6) "KRN",8994,5919,3,0) ^8994.03^1^1^3220309^^ "KRN",8994,5919,3,1,0) Returns Code - 0 or 1. 0 for not Mission Act Eligible and 1 for Eligible. "KRN",8994,5920,-1) 0^1 "KRN",8994,5920,0) SDEC GET INSTITUTION^GETINST^SDEC1^2^R^^^^^^1 "KRN",8994,5920,1,0) ^^1^1^3220401^ "KRN",8994,5920,1,1,0) Get the current Institution ID and Name. "KRN",8994,5920,3,0) ^8994.03^4^4^3220401^^ "KRN",8994,5920,3,1,0) Returns current Institution ID and Name in JSON format. "KRN",8994,5920,3,2,0) "{"Institution": "KRN",8994,5920,3,3,0) {"ID":442, "KRN",8994,5920,3,4,0) "Name":""CHEYENNE VA MEDICAL"}} "KRN",8994,5921,-1) 0^5 "KRN",8994,5921,0) SDES GET INSURANCE VERIFY LIST^INSURINDICATORS^SDES^2^R^^^^^^1 "KRN",8994,5921,1,0) ^8994.01^2^2^3220407^^^ "KRN",8994,5921,1,1,0) Given a list of Patient Data File Numbers (DFNs), return a list of "KRN",8994,5921,1,2,0) indicators. "KRN",8994,5921,2,0) ^8994.02A^2^1 "KRN",8994,5921,2,2,0) DFNS^2^^1^1 "KRN",8994,5921,2,2,1,0) ^8994.021^1^1^3220407^^ "KRN",8994,5921,2,2,1,1,0) List of Patient Data File Numbers (DFNs) "KRN",8994,5921,2,"B","DFNS",2) "KRN",8994,5921,2,"PARAMSEQ",1,2) "KRN",8994,5921,3,0) ^8994.03^17^17^3220407^^ "KRN",8994,5921,3,1,0) { "KRN",8994,5921,3,2,0) "NeedInsuranceVerification": [ "KRN",8994,5921,3,3,0) { "KRN",8994,5921,3,4,0) "DFN": 7242563, "KRN",8994,5921,3,5,0) "YesNo": 1 "KRN",8994,5921,3,6,0) }, "KRN",8994,5921,3,7,0) { "KRN",8994,5921,3,8,0) "DFN": 7242543, "KRN",8994,5921,3,9,0) "YesNo": 1 "KRN",8994,5921,3,10,0) }, "KRN",8994,5921,3,11,0) { "KRN",8994,5921,3,12,0) "DFN": 980779878989, "KRN",8994,5921,3,13,0) "Errors": "DFN Error", "KRN",8994,5921,3,14,0) "YesNo": "" "KRN",8994,5921,3,15,0) } "KRN",8994,5921,3,16,0) ] "KRN",8994,5921,3,17,0) } "KRN",8994,5922,-1) 0^7 "KRN",8994,5922,0) SDES CREATE APPOINTMENTS^CREATEAPPTWRAPPR^SDES^2^R^0^^0^^^1 "KRN",8994,5922,1,0) ^^1^1^3220414^ "KRN",8994,5922,1,1,0) This RPC creates an appointment entry in File 409.84, File 44, and File 2. "KRN",8994,5922,2,0) ^8994.02A^1^1 "KRN",8994,5922,2,1,0) APPTARRAY^2^32000^1^1 "KRN",8994,5922,2,1,1,0) ^^46^46^3220414^ "KRN",8994,5922,2,1,1,1,0) ;(APPTARRAY(1)= APPT START TIME - (REQUIRED) - ISO FORMAT "KRN",8994,5922,2,1,1,2,0) ;(APPTARRAY(2)= APPT END TIME - (REQUIRED) - ISO FORMAT "KRN",8994,5922,2,1,1,3,0) ;(APPTARRAY(3)= DFN - (REQUIRED) - PATIENT IEN "KRN",8994,5922,2,1,1,4,0) ;(APPTARRAY(4)= SDEC RESOURCE IEN (REQUIRED) "KRN",8994,5922,2,1,1,5,0) ;(APPTARRAY(5)= WALKIN - (Y/N) "KRN",8994,5922,2,1,1,6,0) ;(APPTARRAY(6)= DESIRED DATE/TIME - ISO FORMAT "KRN",8994,5922,2,1,1,7,0) ;(APPTARRAY(7)= EXTERNAL ID - (FREE TEXT 1-50) "KRN",8994,5922,2,1,1,8,0) ;(APPTARRAY(8)= SD REQUEST TYPE (REQUIRED) - REQTYPE|REQIEN "KRN",8994,5922,2,1,1,9,0) ;(APPTARRAY(9)= PROVIDER IEN "KRN",8994,5922,2,1,1,10,0) ;(APPTARRAY(10)= CLINIC IEN (REQUIRED) "KRN",8994,5922,2,1,1,11,0) ;(APPTARRAY(11)= NOTE - FREE TEXT 1-150 "KRN",8994,5922,2,1,1,12,0) ;(APPTARRAY(12)= APPT TYPE (REQUIRED) - POINTER FROM ^SD(809.1 "KRN",8994,5922,2,1,1,13,0) ;(APPTARRAY(13)= PATIENT STATUS - (N/E) N:NEW E:ESTABLISHED "KRN",8994,5922,2,1,1,14,0) ;(APPTARRAY(14)= APPT LENGTH (REQUIRED) - IN MINUTES (5-120) "KRN",8994,5922,2,1,1,15,0) ;(APPTARRAY(15)= SERVICE CONNECTED - YES/NO "KRN",8994,5922,2,1,1,16,0) ;(APPTARRAY(16)= SERVICE CONNECTED PERCENTAGE - 0-100 "KRN",8994,5922,2,1,1,17,0) ;(APPTARRAY(17)= MRTC (TRUE/FALSE) "KRN",8994,5922,2,1,1,18,0) ;(APPTARRAY(18)= PARENT REQUEST (APPT REQUEST IEN) "KRN",8994,5922,2,1,1,19,0) ;(APPTARRAY(19)= EAS TRACKING NUMBER "KRN",8994,5922,2,1,1,20,0) ;(APPTARRAY(20)) APPT REASON - FREE TEXT (1-150) "KRN",8994,5922,2,1,1,21,0) ;(APPTARRAY(21)= PATIENT ELIGIBILITY IEN - POINTER TO ^DIC(8 "KRN",8994,5922,2,1,1,22,0) ;(APPTARRAY(22)= OVERBOOK (0 for no, 1 for yes) "KRN",8994,5922,2,1,1,23,0) ;(APPTARRAY(23)= LAB DATE/TIME - ISO FORMAT "KRN",8994,5922,2,1,1,24,0) ;(APPTARRAY(24)= XRAY DATE/TIME - ISO FORMAT "KRN",8994,5922,2,1,1,25,0) ;(APPTARRAY(25)= EKG DATE/TIME - ISO FORMAT "KRN",8994,5922,2,1,1,26,0) ;(APPTARRAY(26)= PURPOSE (REQUIRED)- '1' FOR C&P; '2' FOR "KRN",8994,5922,2,1,1,27,0) 10-10; '3' FOR SCHEDULED VISIT; '4' FOR UNSCHED. VISIT; "KRN",8994,5922,2,1,1,28,0) ;(APPTARRAY(27)= COLLATERAL - 1 FOR YES "KRN",8994,5922,2,1,1,29,0) ;(APPTARRAY(28)= SCHEDULE REQUEST TYPE (REQUIRED) - "KRN",8994,5922,2,1,1,30,0) ; 'N' FOR 'NEXT AVAILABLE' APPT.; "KRN",8994,5922,2,1,1,31,0) ; 'C' FOR OTHER THAN 'NEXT AVA.' (CLINICIAN "KRN",8994,5922,2,1,1,32,0) REQ.) "KRN",8994,5922,2,1,1,33,0) ; 'P' FOR OTHER THAN 'NEXT AVA.' (PATIENT REQ.); "KRN",8994,5922,2,1,1,34,0) ; 'W' FOR WALKIN APPT.; "KRN",8994,5922,2,1,1,35,0) ; 'M' FOR MULTIPLE APPT. BOOKING; "KRN",8994,5922,2,1,1,36,0) ; 'A' FOR AUTO REBOOK; "KRN",8994,5922,2,1,1,37,0) ; 'O' FOR OTHER THAN 'NEXT AVA.' APPT.; "KRN",8994,5922,2,1,1,38,0) ;(APPTARRAY(29)= NEXT AVAILABLE APPT (REQUIRED) - "KRN",8994,5922,2,1,1,39,0) ; '0' FOR NOT INDICATED TO BE A 'NEXT AVA.' "KRN",8994,5922,2,1,1,40,0) APPT. "KRN",8994,5922,2,1,1,41,0) ; 1' FOR 'NEXT AVA.' APPT. INDICATED BY USER; "KRN",8994,5922,2,1,1,42,0) ; '2' FOR 'NEXT AVA.' APPT. INDICATED BY "KRN",8994,5922,2,1,1,43,0) CALCULATION; "KRN",8994,5922,2,1,1,44,0) ; '3' FOR 'NEXT AVA.' APPT. INDICATED BY USER & "KRN",8994,5922,2,1,1,45,0) C "KRN",8994,5922,2,1,1,46,0) ;(APPTARRAY(30)= FOLLOWUP - 1 FOR YES 0 FOR NO "KRN",8994,5922,2,"B","APPTARRAY",1) "KRN",8994,5922,2,"PARAMSEQ",1,1) "KRN",8994,5922,3,0) ^^1^1^3220414^ "KRN",8994,5922,3,1,0) NEW IEN FROM 409.84 APPOINTMENT ENTRY IN JSON FORMAT "KRN",8994,5923,-1) 0^12 "KRN",8994,5923,0) SDES GET APPTS BY CLIN IEN^GETAPPTWRAPCLIN^SDES^2^R^^^0^^^1 "KRN",8994,5923,1,0) ^8994.01^3^3^3220407^^^^ "KRN",8994,5923,1,1,0) This RPC retrieves and returns appointments from SDEC APPOINTMENT File "KRN",8994,5923,1,2,0) #409.84, HOSPITAL LOCATION File #44, and Appointment Multiple Patient File "KRN",8994,5923,1,3,0) #2 for a given clinic within a given date range in JSON format. "KRN",8994,5923,2,0) ^8994.02A^3^3 "KRN",8994,5923,2,1,0) CLINICIEN^1^20^1^1 "KRN",8994,5923,2,1,1,0) ^^1^1^3220406^ "KRN",8994,5923,2,1,1,1,0) The Internal Entry Number (IEN) from HOSPITAL LOCATION FILE #44. "KRN",8994,5923,2,2,0) SDBEGIN^1^25^1^2 "KRN",8994,5923,2,2,1,0) ^^1^1^3220406^ "KRN",8994,5923,2,2,1,1,0) The beginning date/time in ISO 8601 Time Format to start for the search. "KRN",8994,5923,2,3,0) SDEND^1^25^1^3 "KRN",8994,5923,2,3,1,0) ^8994.021^1^1^3220407^^^^ "KRN",8994,5923,2,3,1,1,0) The ending date/time in ISO 8601 Time Format to start for the search. "KRN",8994,5923,2,"B","CLINICIEN",1) "KRN",8994,5923,2,"B","SDBEGIN",2) "KRN",8994,5923,2,"B","SDEND",3) "KRN",8994,5923,2,"PARAMSEQ",1,1) "KRN",8994,5923,2,"PARAMSEQ",2,2) "KRN",8994,5923,2,"PARAMSEQ",3,3) "KRN",8994,5923,3,0) ^^3^3^3220407^ "KRN",8994,5923,3,1,0) Returns a JSON array back of all patients appointments for a given clinic "KRN",8994,5923,3,2,0) within a given date range. "KRN",8994,5923,3,3,0) Otherwise, it will return the appropriate error. "KRN",8994,5923,3,4,0) Otherwise, it will return the appropriate error. "KRN",8994,5923,3,5,0) "KRN",8994,5923,3,6,0) { "KRN",8994,5923,3,7,0) "Appointment": [ "KRN",8994,5923,3,8,0) { "KRN",8994,5923,3,9,0) "AppointmentCancelled": "", "KRN",8994,5923,3,10,0) "AppointmentDateTime": "2022-02-23T09:15-0500", "KRN",8994,5923,3,11,0) "AppointmentIEN": 289628, "KRN",8994,5923,3,12,0) "AppointmentType": "REGULAR", "KRN",8994,5923,3,13,0) "AppointmentTypeIEN": 9, "KRN",8994,5923,3,14,0) "AppointmentTypeSubCategory": "", "KRN",8994,5923,3,15,0) "AutoRebookedApptDateTime": "", "KRN",8994,5923,3,16,0) "CancellationReason": "", "KRN",8994,5923,3,17,0) "CancellationRemarks": "", "KRN",8994,5923,3,18,0) "CheckIn": "", "KRN",8994,5923,3,19,0) "CheckInEntered": "", "KRN",8994,5923,3,20,0) "CheckInSteps": "", "KRN",8994,5923,3,21,0) "CheckInUser": "", "KRN",8994,5923,3,22,0) "CheckOut": "", "KRN",8994,5923,3,23,0) "CheckOutEntered": "", "KRN",8994,5923,3,24,0) "CheckOutUser": "", "KRN",8994,5923,3,25,0) "Clinic": { "KRN",8994,5923,3,26,0) "Division": "CHEYENNE VAMROC", "KRN",8994,5923,3,27,0) "IsOverbook": 0, "KRN",8994,5923,3,28,0) "Name": "KATE'S CLINIC 1", "KRN",8994,5923,3,29,0) "PatientFriendlyName": "", "KRN",8994,5923,3,30,0) "PhysicalLocation": "", "KRN",8994,5923,3,31,0) "Telephone": "" "KRN",8994,5923,3,32,0) }, "KRN",8994,5923,3,33,0) "CollateralVisit": "", "KRN",8994,5923,3,34,0) "ConsultLink": "", "KRN",8994,5923,3,35,0) "CurrentStatus": "NO ACTION TAKEN", "KRN",8994,5923,3,36,0) "DataEntryClerk": "CLERKLASTNAME,CLERKFIRSNAME R", "KRN",8994,5923,3,37,0) "DateAppointmentMade": "2022-02-17T10:53:55-0500", "KRN",8994,5923,3,38,0) "DesiredDateOfAppointment": "2022-02-17", "KRN",8994,5923,3,39,0) "DuplicateApptSameDay": "", "KRN",8994,5923,3,40,0) "EASTrackingNumber": "", "KRN",8994,5923,3,41,0) "EkgDateTime": "", "KRN",8994,5923,3,42,0) "EncounterConversionStatus": "", "KRN",8994,5923,3,43,0) "EncounterFormsAsAddOns": "", "KRN",8994,5923,3,44,0) "EncounterFormsPrinted": "", "KRN",8994,5923,3,45,0) "EndTime": "2022-02-23T09:30-0500", "KRN",8994,5923,3,46,0) "FollowUpVisit": "NO", "KRN",8994,5923,3,47,0) "LabDateTime": "", "KRN",8994,5923,3,48,0) "LengthOfAppt": 15, "KRN",8994,5923,3,49,0) "NextAvaApptIndicator": "", "KRN",8994,5923,3,50,0) "NoShowCancelDateTime": "", "KRN",8994,5923,3,51,0) "NoShowCancelledBy": "", "KRN",8994,5923,3,52,0) "Note": "", "KRN",8994,5923,3,53,0) "NumberOfCollateralSeen": "", "KRN",8994,5923,3,54,0) "OtherTests": "", "KRN",8994,5923,3,55,0) "OtherTravel": "", "KRN",8994,5923,3,56,0) "OutpatientEncounter": "", "KRN",8994,5923,3,57,0) "OverbookFlag": "", "KRN",8994,5923,3,58,0) "ParentRecordRequest": "", "KRN",8994,5923,3,59,0) "Patient": { "KRN",8994,5923,3,60,0) "CurrentEligibilityCode": "SC LESS THAN 50%", "KRN",8994,5923,3,61,0) "DFN": 7242575, "KRN",8994,5923,3,62,0) "EligibilityIEN": 3, "KRN",8994,5923,3,63,0) "EnrollmentCode": "", "KRN",8994,5923,3,64,0) "EnrollmentDate": "", "KRN",8994,5923,3,65,0) "Last4": 1234, "KRN",8994,5923,3,66,0) "Name": "VSERRM,TESTONE", "KRN",8994,5923,3,67,0) "SSN": 666000000, "KRN",8994,5923,3,68,0) "Street": "12198 E VASSAR DR" "KRN",8994,5923,3,69,0) }, "KRN",8994,5923,3,70,0) "PriorXRayResults": "", "KRN",8994,5923,3,71,0) "Provider": { "KRN",8994,5923,3,72,0) "ID": "", "KRN",8994,5923,3,73,0) "Name": "" "KRN",8994,5923,3,74,0) }, "KRN",8994,5923,3,75,0) "PurposeOfVisit": "SCHEDULED VISIT", "KRN",8994,5923,3,76,0) "RealAppointment": 1, "KRN",8994,5923,3,77,0) "Resource": { "KRN",8994,5923,3,78,0) "ClinicIEN": 5075, "KRN",8994,5923,3,79,0) "Name": "KATE'S CLINIC 1" "KRN",8994,5923,3,80,0) }, "KRN",8994,5923,3,81,0) "ResourceIEN": 3438, "KRN",8994,5923,3,82,0) "RoutingSlipPrintDate": "", "KRN",8994,5923,3,83,0) "RoutingSlipPrinted": "", "KRN",8994,5923,3,84,0) "SchedulerName": "", "KRN",8994,5923,3,85,0) "SchedulingApplication": "", "KRN",8994,5923,3,86,0) "SchedulingRequestType": "'NEXT AVAILABLE' APPT.", "KRN",8994,5923,3,87,0) "SpecialSurveyDisposition": "", "KRN",8994,5923,3,88,0) "StartTimeFM": 3220223.0915, "KRN",8994,5923,3,89,0) "Status": "NO ACTION TAKEN", "KRN",8994,5923,3,90,0) "VeteranVideoCallURL": "", "KRN",8994,5923,3,91,0) "WardLocation": "", "KRN",8994,5923,3,92,0) "XRAY": "", "KRN",8994,5923,3,93,0) "XrayDateTime": "" "KRN",8994,5923,3,94,0) } "KRN",8994,5923,3,95,0) ] "KRN",8994,5923,3,96,0) } "KRN",8994,5924,-1) 0^13 "KRN",8994,5924,0) SDES GET APPTS BY PATIENT DFN^GETAPPTWRAPDFN^SDES^2^R^^^0^^^1 "KRN",8994,5924,1,0) ^8994.01^3^3^3220407^^^ "KRN",8994,5924,1,1,0) This RPC retrieves and returns appointments from SDEC APPOINTMENT File "KRN",8994,5924,1,2,0) #409.84, HOSPITAL LOCATION File #44, and Appointment Multiple Patient File "KRN",8994,5924,1,3,0) #2 for a given patient DFN within a given date range in JSON format. "KRN",8994,5924,2,0) ^8994.02A^3^3 "KRN",8994,5924,2,1,0) DFN^1^32000^1^1 "KRN",8994,5924,2,1,1,0) ^^1^1^3220407^ "KRN",8994,5924,2,1,1,1,0) Patient Data File Number (DFN) from Patient File #2. "KRN",8994,5924,2,2,0) SDBEGIN^1^25^1^2 "KRN",8994,5924,2,2,1,0) ^^1^1^3220407^ "KRN",8994,5924,2,2,1,1,0) The beginning date/time in ISO 8601 Time Format to start for the search. "KRN",8994,5924,2,3,0) SDEND^1^25^1^3 "KRN",8994,5924,2,3,1,0) ^8994.021^1^1^3220407^^^ "KRN",8994,5924,2,3,1,1,0) The ending date/time in ISO 8601 Time Format to start for the search. "KRN",8994,5924,2,"B","DFN",1) "KRN",8994,5924,2,"B","SDBEGIN",2) "KRN",8994,5924,2,"B","SDEND",3) "KRN",8994,5924,2,"PARAMSEQ",1,1) "KRN",8994,5924,2,"PARAMSEQ",2,2) "KRN",8994,5924,2,"PARAMSEQ",3,3) "KRN",8994,5924,3,0) ^8994.03^3^3^3220407^^ "KRN",8994,5924,3,1,0) Returns a JSON array back of all patients appointments for a given "KRN",8994,5924,3,2,0) patient DFN within a given date range. "KRN",8994,5924,3,3,0) Otherwise, it will return the appropriate error. "MBREQ") 0 "ORD",16,8994) 8994;16;1;;;;RPCE1^XPDIA1;;;RPCDEL^XPDIA1 "ORD",16,8994,0) REMOTE PROCEDURE "ORD",18,19) 19;18;;;OPT^XPDTA;OPTF1^XPDIA;OPTE1^XPDIA;OPTF2^XPDIA;;OPTDEL^XPDIA "ORD",18,19,0) OPTION "PKG",16,-1) 1^1 "PKG",16,0) SCHEDULING^SD^APPOINTMENTS,PROFILES,LETTERS,AMIS REPORTS "PKG",16,22,0) ^9.49I^1^1 "PKG",16,22,1,0) 5.3^2930813^2930930 "PKG",16,22,1,"PAH",1,0) 814^3220506^520881788 "PKG",16,22,1,"PAH",1,1,0) ^^54^54^3220506 "PKG",16,22,1,"PAH",1,1,1,0) VSE-2642 - VistA: Update the SDES routine to place $G around all input "PKG",16,22,1,"PAH",1,1,2,0) params "PKG",16,22,1,"PAH",1,1,3,0) VSE-2648 - VistA: TMP change exposed error "PKG",16,22,1,"PAH",1,1,4,0) VSE-2726 - VistA: Support for UI change to display institution name on top "PKG",16,22,1,"PAH",1,1,5,0) banner "PKG",16,22,1,"PAH",1,1,6,0) VSE-2695 - VistA: VistA: Update SDES GET USRPROFILE and SDES GET USER "PKG",16,22,1,"PAH",1,1,7,0) PROFILE BY DUZ RPCs Return Division Id "PKG",16,22,1,"PAH",1,1,8,0) VSE-2268 - VistA: Create RPC to calculate Mission Act Eligibility "PKG",16,22,1,"PAH",1,1,9,0) VSE-2433 - Vista: Create wrapper for viewing an appointment "PKG",16,22,1,"PAH",1,1,10,0) VSE-2705 - Vista: Eastern European Time Zone offset is not returning valid "PKG",16,22,1,"PAH",1,1,11,0) times "PKG",16,22,1,"PAH",1,1,12,0) VSE-2794 - VistA: Modify routine SDECDATE to correct offset validation "PKG",16,22,1,"PAH",1,1,13,0) VSE-2795 - VistA: Create a new RPC that accepts a list of patient DFNs "PKG",16,22,1,"PAH",1,1,14,0) and returns insurance indicators. "PKG",16,22,1,"PAH",1,1,15,0) VSE-2748 - VistA: Update SDES CREATE APPT #409.84 RPC "PKG",16,22,1,"PAH",1,1,16,0) VSE-2754 - VistA: Update SDES CREATE APPT #44 "PKG",16,22,1,"PAH",1,1,17,0) VSE-2432 - VistA: Create wrapper RPC for adding an appointment "PKG",16,22,1,"PAH",1,1,18,0) VSE-2933 - VistA: Update SDEC EDIT PAT PRE-REGISTRATION RPC "PKG",16,22,1,"PAH",1,1,19,0) "PKG",16,22,1,"PAH",1,1,20,0) ROUTINES: "PKG",16,22,1,"PAH",1,1,21,0) ========= "PKG",16,22,1,"PAH",1,1,22,0) SDES - VSE-2642;VSE-2433;VSE-2432 "PKG",16,22,1,"PAH",1,1,23,0) SDEC1 - VSE-2726 "PKG",16,22,1,"PAH",1,1,24,0) SDEC46 - VSE-2726 "PKG",16,22,1,"PAH",1,1,25,0) SDEC07C - VSE-2587 "PKG",16,22,1,"PAH",1,1,26,0) SDESBLKANDMOVE1 - VSE-2587 "PKG",16,22,1,"PAH",1,1,27,0) SDESMISSIONELG, SDES, SDESJSON - VSE-2268 "PKG",16,22,1,"PAH",1,1,28,0) SDESGETUD, SDESGETUDDUZ - VSE-2695 "PKG",16,22,1,"PAH",1,1,29,0) SDESAPPTDATA - VSE-2433 (Modified) "PKG",16,22,1,"PAH",1,1,30,0) SDESGETAPPTWRAP - VSE-2433 (New) "PKG",16,22,1,"PAH",1,1,31,0) SDESUTIL - VSE-2705, VSE-2432 "PKG",16,22,1,"PAH",1,1,32,0) SDECDATE - VSE-2794 "PKG",16,22,1,"PAH",1,1,33,0) SDESPATRPC - VSE-2795 "PKG",16,22,1,"PAH",1,1,34,0) SDUDC - VSE-2648 "PKG",16,22,1,"PAH",1,1,35,0) SDESJSON - VSE-2432 "PKG",16,22,1,"PAH",1,1,36,0) SDESCRTAPPTWRAP - VSE-2432 "PKG",16,22,1,"PAH",1,1,37,0) SDESCREATEAPPT - VSE-2432;VSE-2748 "PKG",16,22,1,"PAH",1,1,38,0) SDESCREATEAPPT44- VSE-2432;VSE-2754 "PKG",16,22,1,"PAH",1,1,39,0) SDESCREATEAPPT2 - VSE-2432 "PKG",16,22,1,"PAH",1,1,40,0) "PKG",16,22,1,"PAH",1,1,41,0) OPTIONS: "PKG",16,22,1,"PAH",1,1,42,0) ======== "PKG",16,22,1,"PAH",1,1,43,0) SDECRPC - VSE-2726;2268 "PKG",16,22,1,"PAH",1,1,44,0) SDESRPC - VSE-2268;VSE-2433 "PKG",16,22,1,"PAH",1,1,45,0) "PKG",16,22,1,"PAH",1,1,46,0) REMOTE PROCEDURES: "PKG",16,22,1,"PAH",1,1,47,0) ================== "PKG",16,22,1,"PAH",1,1,48,0) SDEC GET INSTITUTION - VSE-2726 "PKG",16,22,1,"PAH",1,1,49,0) SDEC EDIT PAT PRE-REGISTRATION - VSE-2933 "PKG",16,22,1,"PAH",1,1,50,0) SDES GET MISSION ACT ELIG - VSE-2268 "PKG",16,22,1,"PAH",1,1,51,0) SDES GET APPTS BY PATIENT DFN - VSE-2433 "PKG",16,22,1,"PAH",1,1,52,0) SDES GET APPTS BY CLIN IEN - VSE-2433 "PKG",16,22,1,"PAH",1,1,53,0) SDES GET INSURANCE VERIFY LIST - VSE-2796 "PKG",16,22,1,"PAH",1,1,54,0) SDES CREATE APPOINTMENTS - VSE-2432 "QUES","XPF1",0) Y "QUES","XPF1","??") ^D REP^XPDH "QUES","XPF1","A") Shall I write over your |FLAG| File "QUES","XPF1","B") YES "QUES","XPF1","M") D XPF1^XPDIQ "QUES","XPF2",0) Y "QUES","XPF2","??") ^D DTA^XPDH "QUES","XPF2","A") Want my data |FLAG| yours "QUES","XPF2","B") YES "QUES","XPF2","M") D XPF2^XPDIQ "QUES","XPI1",0) YO "QUES","XPI1","??") ^D INHIBIT^XPDH "QUES","XPI1","A") Want KIDS to INHIBIT LOGONs during the install "QUES","XPI1","B") NO "QUES","XPI1","M") D XPI1^XPDIQ "QUES","XPM1",0) PO^VA(200,:EM "QUES","XPM1","??") ^D MG^XPDH "QUES","XPM1","A") Enter the Coordinator for Mail Group '|FLAG|' "QUES","XPM1","B") "QUES","XPM1","M") D XPM1^XPDIQ "QUES","XPO1",0) Y "QUES","XPO1","??") ^D MENU^XPDH "QUES","XPO1","A") Want KIDS to Rebuild Menu Trees Upon Completion of Install "QUES","XPO1","B") NO "QUES","XPO1","M") D XPO1^XPDIQ "QUES","XPZ1",0) Y "QUES","XPZ1","??") ^D OPT^XPDH "QUES","XPZ1","A") Want to DISABLE Scheduled Options, Menu Options, and Protocols "QUES","XPZ1","B") NO "QUES","XPZ1","M") D XPZ1^XPDIQ "QUES","XPZ2",0) Y "QUES","XPZ2","??") ^D RTN^XPDH "QUES","XPZ2","A") Want to MOVE routines to other CPUs "QUES","XPZ2","B") NO "QUES","XPZ2","M") D XPZ2^XPDIQ "RTN") 19 "RTN","SDEC1") 0^2^B13653237^B13428022 "RTN","SDEC1",1,0) SDEC1 ;ALB/ANU,TAW,LAB - VISTA SCHEDULING RPCS ;APR 1, 2022 "RTN","SDEC1",2,0) ;;5.3;Scheduling;**774,781,784,785,797,800,803,807,814**;Aug 13, 1993;Build 11 "RTN","SDEC1",3,0) ;;Per VHA Directive 6402, this routine should not be modified "RTN","SDEC1",4,0) ; "RTN","SDEC1",5,0) ARGETIEN(RET,IEN) ;RPC: SDEC GET PAT APPT REQ BY IEN "RTN","SDEC1",6,0) D ARGETIEN^SDECAR4(.RET,IEN) Q "RTN","SDEC1",7,0) ARGETPAT(RET,DFN) ;RPC: SDEC PATIENT APPT REQ GET "RTN","SDEC1",8,0) D ARGETPAT^SDECAR4(.RET,DFN) Q "RTN","SDEC1",9,0) ARGETPATJSON(RET,DFN) ;RPC: SDEC APPT REQ GET PATIENT JSON "RTN","SDEC1",10,0) D ARGETPATJSON^SDECAR4(.RET,DFN) Q "RTN","SDEC1",11,0) CONSLIST(SDECY,DFN) ;EP SDEC GET PATIENT CONSULTS "RTN","SDEC1",12,0) D CONSLIST^SDEC51B(.SDECY,DFN) Q ;Return a list of ACTIVE or PENDING CONSULTS for patient "RTN","SDEC1",13,0) CONSULT1(SDECY,IEN) ; This RPC returns the patient Consult associated with a given IEN - SDEC GET PAT CONSULT BY IEN "RTN","SDEC1",14,0) D CONSULT1^SDEC51B(.SDECY,IEN) Q "RTN","SDEC1",15,0) CLGRPLK(SDECY,SRCHAR) ;EP SDEC CLINIC GROUP LOOKUP "RTN","SDEC1",16,0) D CLGRPLK^SDEC63(.SDECY,SRCHAR) Q "RTN","SDEC1",17,0) DISMULT(RTT,CIEN) ; RPC: SDEC CONTACT MULTI-DISPLAY "RTN","SDEC1",18,0) D DISMULT^SDECCON(.RTT,CIEN) Q "RTN","SDEC1",19,0) DELETEVVSID(RETURN,DFN,RESOURCE,APPTDATETIME) ;This RPC deletes Video Visit ID from SDEC APPOINTMENT(#409.84) file "RTN","SDEC1",20,0) D DELETEVVSID^SDECVVS(.RETURN,DFN,RESOURCE,APPTDATETIME) Q "RTN","SDEC1",21,0) DISPLAY(RTU,DFN,CLN,PDT,REQT,SER) ; RPC: SDEC CONTACT DISPLAY "RTN","SDEC1",22,0) D DISPLAY^SDECCON(.RTU,DFN,CLN,PDT,REQT,SER) Q "RTN","SDEC1",23,0) DISPLAY1(RTU,REQT,RIEN) ; RPC: SDEC CONTACT DISPLAY SINGLE "RTN","SDEC1",24,0) D DISPLAY1^SDECCON(.RTU,REQT,RIEN) Q ; RPC: SDEC CONTACT DISPLAY SINGLE "RTN","SDEC1",25,0) DUZSTATIONID(SDECY) ; SDEC GET STATION ID "RTN","SDEC1",26,0) D DUZSTATIONID^SDECDUZ(.SDECY) Q "RTN","SDEC1",27,0) GETPATDEMOG(SDECY,SDECP,SDECC,LASTSUB) ;EP Patient Lookup "LITE"; VSE-664 "RTN","SDEC1",28,0) D GETPATDEMOG^SDEC28L(.SDECY,$G(SDECP),$G(SDECC),$G(LASTSUB)) Q "RTN","SDEC1",29,0) GETPATIENTICN(RETURN,PATIENTIEN) ;GET PATIENT ICN FROM PATIENT IEN (DFN) "RTN","SDEC1",30,0) D GETPATIENTICN^SDECVVS(.RETURN,PATIENTIEN) Q "RTN","SDEC1",31,0) GETSTC(RET,CLIEN) ; RPC: SDEC CONTACT STOP CODE "RTN","SDEC1",32,0) D GETSTC^SDECCON(.RET,CLIEN) Q "RTN","SDEC1",33,0) GETSPACEBARPRO(VVSPRORETURN) ;SPACEBAR RETURN LAST PROVIDER "RTN","SDEC1",34,0) D GETSPACEBARPRO^SDECVVS(.VVSPRORETURN) Q "RTN","SDEC1",35,0) GETVVSMAKEINFO(VVSMAKEINFO,PATIENTIEN,CLINICIEN) ;GET INFO TO MAKE A VIDEO VISIT WEB SERVICE (VVS) CALL "RTN","SDEC1",36,0) D GETVVSMAKEINFO^SDECVVS(.VVSMAKEINFO,PATIENTIEN,CLINICIEN) Q "RTN","SDEC1",37,0) GETWLIEN(RET,APPTIEN) ; "RTN","SDEC1",38,0) D GETWLIEN^SDEC63(.RET,APPTIEN) Q "RTN","SDEC1",39,0) GETVVSID(RETURN,DFN,RESOURCE,APPTDATETIME) ;This RPC returns the Video Visit Service (VVS) ID. "RTN","SDEC1",40,0) D GETVVSID^SDECVVS(.RETURN,DFN,RESOURCE,APPTDATETIME) Q "RTN","SDEC1",41,0) JSONCONSLIST(SDEC,DFN) ;EP RPC: SDEC GET PATIENT CONSULTS JSON "RTN","SDEC1",42,0) D JSONCONSLIST^SDECCONSJSON(.SDEC,DFN) Q "RTN","SDEC1",43,0) JSONCONSLIST1(SDEC,IEN) ;EP RPC: SDEC GET PATIENT CONSULT JSON "RTN","SDEC1",44,0) D JSONCONSLIST1^SDECCONSJSON(.SDEC,IEN) Q "RTN","SDEC1",45,0) NEW(RET,DFN,CLI,DTP,REQT,SRV,DTCON,CONT,COM,DTENT,RIEN) ; RPC: SDEC CONTACT NEW "RTN","SDEC1",46,0) D NEW^SDECCON(.RET,DFN,CLI,DTP,REQT,SRV,DTCON,CONT,COM,DTENT,RIEN) Q "RTN","SDEC1",47,0) PREREG(SDECY,DFN,PRESTAT) ; "RTN","SDEC1",48,0) D PREREG^SDECUPDPATPREREG(.SDECY,DFN,PRESTAT) ;UPDATE PATIENT PRE-REGISTRATION "RTN","SDEC1",49,0) RECGET(SDECY,DFN) ;This RPC returns all open recall requests associated with a patient in a delimited string "RTN","SDEC1",50,0) D RECGET^SDEC52C(.SDECY,DFN) Q "RTN","SDEC1",51,0) RECGETJSON(SDECY,DFN) ; This RPC returns all open recall requests associated with a patient in JSON format "RTN","SDEC1",52,0) D RECGETJSON^SDEC52CJSON(.SDECY,DFN) Q "RTN","SDEC1",53,0) RECGETONE(SDECY,IEN) ; This RPC returns the open recall associated with a given IEN "RTN","SDEC1",54,0) D RECGETONE^SDEC52C(.SDECY,IEN) Q "RTN","SDEC1",55,0) RECGETONEJSON(SDECY,IEN) ; This RPC returns the open recall associated with a given IEN in JSON format "RTN","SDEC1",56,0) D RECGETONEJSON^SDEC52CJSON(.SDECY,IEN) Q "RTN","SDEC1",57,0) RESGRP(SDECY,SDECDUZ,GRPIEN) ;EP SDEC CLINIC GROUP RETURN "RTN","SDEC1",58,0) D RESGRP^SDEC63(.SDECY,SDECDUZ,GRPIEN) Q "RTN","SDEC1",59,0) SAVEVVSID(RETURN,DFN,RESOURCE,APPT,VVSID) ;This RPC saves the VVS appointment ID in the SDEC APPOINTMENT file "RTN","SDEC1",60,0) D SAVEVVSID^SDECVVS(.RETURN,DFN,RESOURCE,APPT,VVSID) Q "RTN","SDEC1",61,0) SEQ(RE1,DF1,CL1,PDATE,RTYPE,SRR) ; RPC: SDEC CONTACT SEQUENCE "RTN","SDEC1",62,0) D SEQ^SDECCON(.RE1,DF1,CL1,PDATE,RTYPE,SRR) Q "RTN","SDEC1",63,0) SEQ1(RTU,REQT,RIEN) ; RPC: SDEC CONTACT SEQUENCE SINGLE "RTN","SDEC1",64,0) D SEQ1^SDECCON(.RTU,REQT,RIEN) Q "RTN","SDEC1",65,0) UPDATE(RTT,IEN,CONDT,CTYPE,COMM,DTEN) ; RPC: SDEC CONTACT UPDATE "RTN","SDEC1",66,0) D UPDATE^SDECCON(.RTT,IEN,CONDT,CTYPE,COMM,DTEN) Q "RTN","SDEC1",67,0) VVSPROSEARCH(VVSPROVIDERS,SEARCHSTRING) ;SEARCH PROVIDERS & GET DATA TO MAKE VIDEO VISIT SERVICE (VVS) APPT "RTN","SDEC1",68,0) D VVSPROSEARCH^SDECVVS(.VVSPROVIDERS,SEARCHSTRING) Q "RTN","SDEC1",69,0) JSONVVSMAKEINFO(VVSMAKEINFO,PATIENTIEN,CLINICIEN,APPTDTTM) ;GET INFO TO MAKE A VIDEO VISIT WEB SERVICE (VVS) CALL "RTN","SDEC1",70,0) D GETVVSMAKEINFO^SDECVVSJSON(.VVSMAKEINFO,PATIENTIEN,CLINICIEN,APPTDTTM) Q "RTN","SDEC1",71,0) JSONVVSPRVSRCH(SDEC,SRCHSTR) ;EP RPC: SDEC SEARCH VVS PROVIDERS JSON "RTN","SDEC1",72,0) D JSONPRVLIST^SDECPRVSRCHJSON(.SDEC,SRCHSTR) Q "RTN","SDEC1",73,0) GETINST(SDECY) ;EP RPC: SDEC GET INSTITUTION "RTN","SDEC1",74,0) D GETINST^SDEC46(.SDECY) "RTN","SDEC1",75,0) Q "RTN","SDEC46") 0^3^B16645449^B14528609 "RTN","SDEC46",1,0) SDEC46 ;ALB/SAT/JSM,LAB - VISTA SCHEDULING RPCS ;APR 1, 2022 "RTN","SDEC46",2,0) ;;5.3;Scheduling;**627,643,658,814**;Aug 13, 1993;Build 11 "RTN","SDEC46",3,0) ; "RTN","SDEC46",4,0) Q "RTN","SDEC46",5,0) ; "RTN","SDEC46",6,0) CURFACG(SDECY,SDECDUZ) ;get current division/facility for given user "RTN","SDEC46",7,0) ;CURFACG(SDECY,SDECDUZ) external parameter tag is in SDEC "RTN","SDEC46",8,0) ; SDECDUZ = user IEN from the NEW PERSON file 200 "RTN","SDEC46",9,0) ; returns the Current Division/Facility for the given user "RTN","SDEC46",10,0) N SDECCD,SDECI,SDECSUB "RTN","SDEC46",11,0) S SDECI=0 "RTN","SDEC46",12,0) S SDECY="^TMP(""SDEC"","_$J_")" "RTN","SDEC46",13,0) K @SDECY "RTN","SDEC46",14,0) S ^TMP("SDEC",$J,0)="T00020ERROR_ID"_$C(30) "RTN","SDEC46",15,0) ;check if valid user "RTN","SDEC46",16,0) I $G(SDECDUZ)="" D ERR("0^SDEC46: User not specified.") Q "RTN","SDEC46",17,0) I '$D(^VA(200,SDECDUZ)) D ERR("0^SDEC46: Invalid user specified.") Q "RTN","SDEC46",18,0) S ^TMP("SDEC",$J,0)="T00020CURRENT_DIV"_$C(30) "RTN","SDEC46",19,0) S SDECSUB="^VA(200,"_SDECDUZ_",""2""," "RTN","SDEC46",20,0) S SDECCD=$G(^DISV(SDECDUZ,SDECSUB)) "RTN","SDEC46",21,0) I SDECCD'="" S SDECI=SDECI+1 S ^TMP("SDEC",$J,SDECI)=SDECCD_$C(30) "RTN","SDEC46",22,0) S SDECI=SDECI+1 S ^TMP("SDEC",$J,SDECI)=$C(31) "RTN","SDEC46",23,0) Q "RTN","SDEC46",24,0) ; "RTN","SDEC46",25,0) GETFAC(SDECY,SDECDUZ) ;Gets all facilities for a user "RTN","SDEC46",26,0) ;GETFAC(SDECY,SDECDUZ) external parameter tag is in SDEC "RTN","SDEC46",27,0) ; Input SDECDUZ - (required) user IEN from the NEW PERSON file 200 "RTN","SDEC46",28,0) ; Returns: "RTN","SDEC46",29,0) ;Global Array in which each array entry "RTN","SDEC46",30,0) ;contains the following ^ pieces: "RTN","SDEC46",31,0) ; DIV_IEN = institution Id pointer to the INSTITUTION file 4 "RTN","SDEC46",32,0) ; NOTE field in file 200 uses the term DIVISION but the "RTN","SDEC46",33,0) ; field points to the INSTITUTION file. "RTN","SDEC46",34,0) ; DIV_NAME = institution NAME from the INSTITUTION file "RTN","SDEC46",35,0) ; DEFAULT = Is default division/facility? "RTN","SDEC46",36,0) ; Value can be 'YES' or 'NO' "RTN","SDEC46",37,0) ; TZ_CODE = CODE from the MAILMAN TIME ZONE file 4.4 "RTN","SDEC46",38,0) ; TZ_NAME = TIME ZONE NAME from the MAILMAN TIME ZONE file "RTN","SDEC46",39,0) ; TZ_DIFF = DIFFERENTIAL from the MAILMAN TIME ZONE file "RTN","SDEC46",40,0) ; 7. DIALOGUE = Allow appointment dialogue "RTN","SDEC46",41,0) ; 0=NO (off) "RTN","SDEC46",42,0) ; 1=YES (on) display and ask "RTN","SDEC46",43,0) ; 8.DEF_FONT = User's default font size for VistA Scheduling letters "RTN","SDEC46",44,0) N SDECFN,SDECI,SDECN,SDECNOD,SDIAL,SDTMP,SDTZ,SDTZN,SDFONT ;alb/jsm 658 added SDFONT "RTN","SDEC46",45,0) S SDECI=0 "RTN","SDEC46",46,0) S SDECY="^TMP(""SDEC"","_$J_")" "RTN","SDEC46",47,0) K @SDECY "RTN","SDEC46",48,0) S ^TMP("SDEC",$J,0)="T00020ERROR_ID"_$C(30) "RTN","SDEC46",49,0) ;check if valid user "RTN","SDEC46",50,0) I $G(SDECDUZ)="" D ERR("0^SDEC46: User not specified.") Q "RTN","SDEC46",51,0) I '$D(^VA(200,+SDECDUZ)) D ERR("0^SDEC46: Invalid user specified.") Q "RTN","SDEC46",52,0) S ^TMP("SDEC",$J,0)="T00020DIV_IEN^T00020DIV_NAME^T00020DEFAULT^T00030TZ_CODE^T00030TZ_NAME^T00030TZ_DIFF^T00030DIALOGUE^T00010DEF_FONT"_$C(30) "RTN","SDEC46",53,0) S SDIAL=+$P($G(^DVB(396.1,1,0)),U,18) ;APPT LINKING ENHANCE DIALOGUE from AMIE SITE PARAMETER file "RTN","SDEC46",54,0) S SDTZ=$$GET1^DIQ(4.3,"1,",1,"I") "RTN","SDEC46",55,0) S SDTZN=$G(^XMB(4.4,SDTZ,0)) "RTN","SDEC46",56,0) ;D GETFONT^SDECU4(.SDFONT,SDECDUZ) ;alb/jsm 658 "RTN","SDEC46",57,0) D GETFONT^SDECU4(.SDFONT,"DIV") ;alb/jsm 658 "RTN","SDEC46",58,0) S SDECFN=0 "RTN","SDEC46",59,0) F S SDECFN=$O(^VA(200,+SDECDUZ,2,SDECFN)) Q:SDECFN'>0 D "RTN","SDEC46",60,0) . S SDECNOD=$G(^VA(200,+SDECDUZ,2,SDECFN,0)) "RTN","SDEC46",61,0) . S SDTMP=SDECFN_U_$P(^DIC(4,SDECFN,0),U,1)_U_$S($P(SDECNOD,U,2)=1:"YES",1:"NO") "RTN","SDEC46",62,0) . S SDTMP=SDTMP_U_$P(SDTZN,U,1)_U_$P(SDTZN,U,2)_U_$P(SDTZN,U,3)_U_SDIAL_U_$G(@SDFONT@(1)) ;alb/jsm 658 "RTN","SDEC46",63,0) . S SDECI=SDECI+1 S ^TMP("SDEC",$J,SDECI)=SDTMP_$C(30) "RTN","SDEC46",64,0) S SDECI=SDECI+1 S ^TMP("SDEC",$J,SDECI)=$C(31) "RTN","SDEC46",65,0) Q "RTN","SDEC46",66,0) ; "RTN","SDEC46",67,0) SETFAC(SDECY,SDECDUZ,SDECFAC) ;SET FACILITY "RTN","SDEC46",68,0) ;SETFAC(SDECY,SDECDUZ,SDECFAC) external parameter tag is in SDEC "RTN","SDEC46",69,0) ; SDECDUZ = user IEN - pointer to the NEW PERSON file 200 "RTN","SDEC46",70,0) ; SDECFAC = facility/division to set - pointer to the INSTITUTE file 4 "RTN","SDEC46",71,0) ;Returns ERROR_ID^ERROR_TEXT "RTN","SDEC46",72,0) ; where ERROR_ID = 1 if successful; 0 if failed "RTN","SDEC46",73,0) ;Fails if SDECFAC is not one of the current user's divisions "RTN","SDEC46",74,0) N SDECI,SDECSUB "RTN","SDEC46",75,0) S SDECI=0 "RTN","SDEC46",76,0) S SDECY="^TMP(""SDEC"","_$J_")" "RTN","SDEC46",77,0) K @SDECY "RTN","SDEC46",78,0) S ^TMP("SDEC",$J,0)="T00020ERROR_ID^T00020ERROR_TEXT"_$C(30) "RTN","SDEC46",79,0) I '+SDECDUZ S SDECDUZ=DUZ "RTN","SDEC46",80,0) I '+SDECFAC S SDECI=SDECI+1 S ^TMP("SDEC",$J,1)=0_U_"Division not specified."_$C(30) S SDECI=SDECI+1 S ^TMP("SDEC",$J,1)=$C(31) Q "RTN","SDEC46",81,0) I '$D(^VA(200,SDECDUZ,2,+SDECFAC)) S SDECI=SDECI+1 S ^TMP("SDEC",$J,SDECI)=0_U_"Invalid division specified."_$C(30) S SDECI=SDECI+1 S ^TMP("SDEC",$J,SDECI)=$C(31) Q "RTN","SDEC46",82,0) S SDECSUB="^VA(200,"_SDECDUZ_",""2""," "RTN","SDEC46",83,0) S ^DISV(SDECDUZ,SDECSUB)=SDECFAC "RTN","SDEC46",84,0) S SDECI=SDECI+1 S ^TMP("SDEC",$J,SDECI)=1_U_""_$C(30) "RTN","SDEC46",85,0) S SDECI=SDECI+1 S ^TMP("SDEC",$J,SDECI)=$C(31) Q "RTN","SDEC46",86,0) Q "RTN","SDEC46",87,0) ; "RTN","SDEC46",88,0) GETINST(INSTITUTION) ;get institution id and name "RTN","SDEC46",89,0) N INSTREC,INST "RTN","SDEC46",90,0) S INST=$$SITE^VASITE() "RTN","SDEC46",91,0) S INSTREC("Institution","ID")=$P(INST,U,1) "RTN","SDEC46",92,0) S INSTREC("Institution","Name")=$P(INST,U,2) "RTN","SDEC46",93,0) D BUILDER(.INSTREC,.INSTITUTION) "RTN","SDEC46",94,0) Q "RTN","SDEC46",95,0) ; "RTN","SDEC46",96,0) BUILDER(DATAARR,JSONREC) ;build json record "RTN","SDEC46",97,0) N ERR "RTN","SDEC46",98,0) D ENCODE^XLFJSON("DATAARR","JSONREC","ERR") "RTN","SDEC46",99,0) Q "RTN","SDEC46",100,0) ; "RTN","SDEC46",101,0) ERROR ; "RTN","SDEC46",102,0) D ERR("Error") "RTN","SDEC46",103,0) Q "RTN","SDEC46",104,0) ; "RTN","SDEC46",105,0) ERR(ERRTXT) ;Error processing "RTN","SDEC46",106,0) S:'$D(SDECI) SDECI=999 "RTN","SDEC46",107,0) S ERRTXT=$G(ERRTXT) "RTN","SDEC46",108,0) S SDECI=SDECI+1 "RTN","SDEC46",109,0) S ^TMP("SDEC",$J,SDECI)=ERRTXT_$C(30) "RTN","SDEC46",110,0) S SDECI=SDECI+1 "RTN","SDEC46",111,0) S ^TMP("SDEC",$J,SDECI)=$C(31) "RTN","SDEC46",112,0) Q "RTN","SDEC814P") 0^^B2328600^n/a "RTN","SDEC814P",1,0) SDEC814P ;ALB/LAB - SD*5.3*814 Post Init Routine ; Apr 13, 2022@10:49 "RTN","SDEC814P",2,0) ;;5.3;SCHEDULING;**814**;AUG 13, 1993;Build 11 "RTN","SDEC814P",3,0) ;;Per VHA Directive 6402, this routine should not be modified "RTN","SDEC814P",4,0) ; "RTN","SDEC814P",5,0) D FIND "RTN","SDEC814P",6,0) Q "RTN","SDEC814P",7,0) ; "RTN","SDEC814P",8,0) FIND ;FIND THE IEN FOR "VS GUI NATIONAL" "RTN","SDEC814P",9,0) N SDECDA,SDECDA1 "RTN","SDEC814P",10,0) D MES^XPDUTL("Updating SDEC SETTINGS file (#409.98)") "RTN","SDEC814P",11,0) S SDECDA=0,SDECDA=$O(^SDEC(409.98,"B","VS GUI NATIONAL",SDECDA)) G:$G(SDECDA)="" NOFIND "RTN","SDEC814P",12,0) D VERSION ;update GUI version number and date "RTN","SDEC814P",13,0) Q "RTN","SDEC814P",14,0) VERSION ;SET THE NEW VERSION UPDATE IN SDEC SETTING FILE #409.98 TO 1.7.23 "RTN","SDEC814P",15,0) S DA=SDECDA,DIE=409.98,DR="2///1.7.23;3///"_DT D ^DIE ;update VS GUI NATIONAL "RTN","SDEC814P",16,0) K DIE,DR,DA "RTN","SDEC814P",17,0) S SDECDA1=0,SDECDA1=$O(^SDEC(409.98,"B","VS GUI LOCAL",SDECDA1)) Q:$G(SDECDA1)="" ;get DA for the VS GUI LOCAL "RTN","SDEC814P",18,0) S DA=SDECDA1,DIE=409.98,DR="2///1.7.23;3///"_DT D ^DIE ;update VS GUI LOCAL "RTN","SDEC814P",19,0) K DIE,DR,DA "RTN","SDEC814P",20,0) Q "RTN","SDEC814P",21,0) ; "RTN","SDEC814P",22,0) NOFIND ;"VS GUI NATIONAL" NOT FOUND "RTN","SDEC814P",23,0) D MES^XPDUTL("VS GUI NATIONAL not found in the SDEC SETTINGS file (#409.98)") "RTN","SDEC814P",24,0) Q "RTN","SDECDATE") 0^13^B10065914^B9653243 "RTN","SDECDATE",1,0) SDECDATE ; ALB/WTC,TAW,LAB - VISTA SCHEDULING - Date Utilities ;APR 07,2022 "RTN","SDECDATE",2,0) ;;5.3;Scheduling;**694,805,814**;;Build 11 "RTN","SDECDATE",3,0) ;;Per VHA Directive 2004-038, this routine should not be modified "RTN","SDECDATE",4,0) ; "RTN","SDECDATE",5,0) Q ; "RTN","SDECDATE",6,0) ; "RTN","SDECDATE",7,0) FMTONET(IN,SPACE) ; "RTN","SDECDATE",8,0) ; "RTN","SDECDATE",9,0) ; Convert FileMan format date/time to .NET compatible date "RTN","SDECDATE",10,0) ; "RTN","SDECDATE",11,0) ; IN = FileMan format date "RTN","SDECDATE",12,0) ; SPACE = Y if @ should be converted to a space "RTN","SDECDATE",13,0) ; "RTN","SDECDATE",14,0) N OUT,X,Y,X1 ; "RTN","SDECDATE",15,0) ; "RTN","SDECDATE",16,0) ; If time is midnight, increment date by one and change time to "0000" "RTN","SDECDATE",17,0) ; "RTN","SDECDATE",18,0) I $P(IN,".",2)="24" D G RETURN ; "RTN","SDECDATE",19,0) . S X=$P(IN,".",1),X1=$$FMADD^DILIBF(X,1,0,0,1),X1=$P(X1,".",1) ; "RTN","SDECDATE",20,0) . S OUT=$$FMTE^DILIBF(X1)_"@00:00" ; "RTN","SDECDATE",21,0) ; "RTN","SDECDATE",22,0) ; Other than midnight. "RTN","SDECDATE",23,0) ; "RTN","SDECDATE",24,0) S OUT=$$FMTE^DILIBF(IN) ; "RTN","SDECDATE",25,0) ; "RTN","SDECDATE",26,0) I $G(SPACE)="Y" S OUT=$TR(OUT,"@"," ") ; "RTN","SDECDATE",27,0) ; "RTN","SDECDATE",28,0) RETURN ; "RTN","SDECDATE",29,0) Q OUT ; "RTN","SDECDATE",30,0) ; "RTN","SDECDATE",31,0) NETTOFM(IN,TIME,SECONDS) ; "RTN","SDECDATE",32,0) ; "RTN","SDECDATE",33,0) ; Convert .NET date/time to FileMan format. "RTN","SDECDATE",34,0) ; "RTN","SDECDATE",35,0) ; IN = date/time in external format "RTN","SDECDATE",36,0) ; TIME = time required (Y/N default=Y) "RTN","SDECDATE",37,0) ; SECONDS = seconds permitted (Y/N default=Y) "RTN","SDECDATE",38,0) ; "RTN","SDECDATE",39,0) N OUT,X,Y,X1,TM ; "RTN","SDECDATE",40,0) ; "RTN","SDECDATE",41,0) ; If time is midnight, decrement date by one and change time to 24. "RTN","SDECDATE",42,0) ; "RTN","SDECDATE",43,0) S TM=$P(IN,"@",2) ; May need to add additional checks for correct time depending on how .NET returns date/time. "RTN","SDECDATE",44,0) ; "RTN","SDECDATE",45,0) S %DT="" ; "RTN","SDECDATE",46,0) I $G(TIME)'="N" S %DT=%DT_"R" ; "RTN","SDECDATE",47,0) I $G(TIME)'="N",$G(SECONDS)'="N" S %DT=%DT_"S" ; "RTN","SDECDATE",48,0) ; "RTN","SDECDATE",49,0) I TM="00:00"!(TM="0000") D G RETURN ; "RTN","SDECDATE",50,0) . S X=$P(IN,"@",1),%DT="" D ^%DT S X=$$FMADD^DILIBF(Y,-1,0,0,1),X1=$P(X,".",1) ; "RTN","SDECDATE",51,0) . S OUT=X1_".24" ; "RTN","SDECDATE",52,0) ; "RTN","SDECDATE",53,0) ; Other than midnight "RTN","SDECDATE",54,0) ; "RTN","SDECDATE",55,0) S X=IN D ^%DT S OUT=Y G RETURN "RTN","SDECDATE",56,0) ; "RTN","SDECDATE",57,0) VALIDFMFORMAT(DATE) ;Is DATE a valind FileMan format "RTN","SDECDATE",58,0) ;Return 1=Yes "RTN","SDECDATE",59,0) ; 0=No "RTN","SDECDATE",60,0) N X,Y,%DT "RTN","SDECDATE",61,0) S %DT="T" "RTN","SDECDATE",62,0) I $G(DATE)="" Q 0 "RTN","SDECDATE",63,0) I $$FR^XLFDT(DATE) Q 0 "RTN","SDECDATE",64,0) S X=DATE D ^%DT "RTN","SDECDATE",65,0) I Y=-1 Q 0 "RTN","SDECDATE",66,0) Q 1 "RTN","SDECDATE",67,0) ; "RTN","SDECDATE",68,0) VALIDISO(DATE) ;Is DATE a valid ISO8601 format (e.g., 2022-01-12T13:21) "RTN","SDECDATE",69,0) ; Return "RTN","SDECDATE",70,0) ; 0 = not ISO8601 format "RTN","SDECDATE",71,0) ; 1 = ISO8601 format "RTN","SDECDATE",72,0) N RESULT,SDDATE,SDTIME,SDOFFSET,KEEPSDTIME "RTN","SDECDATE",73,0) S (RESULT)=0 "RTN","SDECDATE",74,0) I $G(DATE)="" Q 0 "RTN","SDECDATE",75,0) S SDDATE=$P(DATE,"T") "RTN","SDECDATE",76,0) I SDDATE D "RTN","SDECDATE",77,0) .;Validate date "RTN","SDECDATE",78,0) .; YYYYMMDD, YYYY-MM-DD or YYYY-MM "RTN","SDECDATE",79,0) .I SDDATE?6N Q ;YYYY-MM is not allowed "RTN","SDECDATE",80,0) .S SDDATE=$TR(SDDATE,"-") "RTN","SDECDATE",81,0) .I SDDATE?8N!(SDDATE?6N) S RESULT=1 "RTN","SDECDATE",82,0) ; "RTN","SDECDATE",83,0) S (SDTIME,KEEPSDTIME)=$P(DATE,"T",2) "RTN","SDECDATE",84,0) I RESULT,SDTIME'="" D "RTN","SDECDATE",85,0) .;Validate time (ignore seconds) "RTN","SDECDATE",86,0) .; THH "RTN","SDECDATE",87,0) .; THHMM or THH:MM "RTN","SDECDATE",88,0) .; THHMMSS or THH:MM:SS "RTN","SDECDATE",89,0) .S SDTIME=$$REMOVEOFFSET^SDAMUTDT(SDTIME) "RTN","SDECDATE",90,0) .S SDTIME=$P(SDTIME,".") ;Ignore seconds "RTN","SDECDATE",91,0) .S SDTIME=$TR(SDTIME,":") "RTN","SDECDATE",92,0) .I SDTIME'?6N,SDTIME'?4N,SDTIME'?2N S RESULT=0 Q "RTN","SDECDATE",93,0) .;Validate offset "RTN","SDECDATE",94,0) .; Z "RTN","SDECDATE",95,0) .; + or - followed by HH "RTN","SDECDATE",96,0) .; + or - followed by HHMM or HH:MM "RTN","SDECDATE",97,0) .I $E(DATE,$L(DATE))="Z" S RESULT=1 Q "RTN","SDECDATE",98,0) .S SDTIME=$TR(KEEPSDTIME,":") "RTN","SDECDATE",99,0) .S SDOFFSET=$P(SDTIME,"+",2) "RTN","SDECDATE",100,0) .I SDOFFSET'="" D Q "RTN","SDECDATE",101,0) ..I SDOFFSET'?2N,SDOFFSET'?4N S RESULT=0 "RTN","SDECDATE",102,0) .S SDOFFSET=$P(SDTIME,"-",2) "RTN","SDECDATE",103,0) .I SDOFFSET'="" D Q "RTN","SDECDATE",104,0) ..I SDOFFSET'?2N,SDOFFSET'?4N S RESULT=0 "RTN","SDECDATE",105,0) Q RESULT "RTN","SDES") 0^1^B90920854^B80563301 "RTN","SDES",1,0) SDES ;ALB/BLB,LAB,KML,MGD,ANU,RRM,LAB,BLB - VISTA SCHEDULING RPCS ;APR 1,2022 "RTN","SDES",2,0) ;;5.3;Scheduling;**788,790,792,794,797,799,800,801,803,804,805,807,809,813,814**;Aug 13, 1993;Build 11 "RTN","SDES",3,0) ;;Per VHA Directive 6402, this routine should not be modified "RTN","SDES",4,0) Q "RTN","SDES",5,0) ; This routine documents the entry points for the new VS GUI version 3.0. "RTN","SDES",6,0) ; "RTN","SDES",7,0) DISPOSITION(RET,ARIEN,DISP,DISPBY,DISPDT,EAS) ;RPC: SDES ARCLOSE "RTN","SDES",8,0) D DISPOSITION^SDESARCLOSE(.RET,$G(ARIEN),$G(DISP),$G(DISPBY),$G(DISPDT),$G(EAS)) Q "RTN","SDES",9,0) ARGETIENJSON(RET,IEN,EAS) ;RPC: SDES GET PAT APPT REQ BY IEN "RTN","SDES",10,0) D ARGETIENJSON^SDESARGET(.RET,$G(IEN),$G(EAS)) Q "RTN","SDES",11,0) ARGETPATJSON(RET,DFN,EAS) ;RPC: SDES PATIENT APPT REQ GET "RTN","SDES",12,0) D ARGETPATJSON^SDESARGET(.RET,$G(DFN),$G(EAS)) Q "RTN","SDES",13,0) APPTBLOCKMOVE(RETURN,APPTIEN,SDRES,APPTDTTM,EAS) ; RPC: SDES CREATE APPT BLK AND MOVE "RTN","SDES",14,0) D APPTBLOCKMOVE^SDESBLKANDMOVE(.RETURN,$G(APPTIEN),$G(SDRES),$G(APPTDTTM),$G(EAS)) Q "RTN","SDES",15,0) APPTBYCLINIC(JSON,CLINICIEN,SDBEG,SDEND,EAS) ;SDES GET APPT BY CLINIC "RTN","SDES",16,0) D GETAPPTSBYCLINIC^SDESAPPT(.JSON,$G(CLINICIEN),$G(SDBEG),$G(SDEND),$G(EAS)) Q "RTN","SDES",17,0) APPTBYCLINICLIST(APPTLISTJSON,CLINICIENS) ;SDES GET APPTS BY CLINIC LIST "RTN","SDES",18,0) D APPTBYCLINICLIST^SDESAPPT(.APPTLISTJSON,.CLINICIENS) Q "RTN","SDES",19,0) APPTBYRESOURCE(JSON,RESIEN,SDBEG,SDEND,EAS) ;SDES GET APPT BY RESOURCE "RTN","SDES",20,0) D APPTBYRESOURCE^SDESAPPT(.JSON,$G(RESIEN),$G(SDBEG),$G(SDEND),$G(EAS)) Q "RTN","SDES",21,0) APPGETJSON(JSON,DFN,SDBEG,SDEND,EAS) ; "RTN","SDES",22,0) D APPGETJSON^SDESAPPT(.JSON,$G(DFN),$G(SDBEG),$G(SDEND),$G(EAS)) Q "RTN","SDES",23,0) APPGETONEJSON(JSON,APPTIEN,EAS) ; "RTN","SDES",24,0) D APPGETONEJSON^SDESAPPT(.JSON,$G(APPTIEN),$G(EAS)) Q "RTN","SDES",25,0) ; Parameter list for APTREQCREATE and APTREQUPDATE *MUST* be kept in sync. "RTN","SDES",26,0) APTREQCREATE(JSON,ARIEN,DFN,AREDT,ARINST,ARTYPE,ARCLIN,ARUSER,ARREQBY,ARPROV,ARDAPTDT,ARCOMM,ARENPRI,ARMAR,ARMAI,AMRAN,ARPATCONT,ARSVCCON,ARSVCCOP,MRTCDT,ARSTOP,ARAPTYP,ARPATSTAT,MULTAPTMDE,ARPARENT,ARNLT,ARPRER,ARORDN,VAOSGUID,EAS) ; "RTN","SDES",27,0) S ARIEN="" ;There will never be an IEN when calling this RPC "RTN","SDES",28,0) D ARSET Q "RTN","SDES",29,0) APTREQUPDATE(JSON,ARIEN,DFN,AREDT,ARINST,ARTYPE,ARCLIN,ARUSER,ARREQBY,ARPROV,ARDAPTDT,ARCOMM,ARENPRI,ARMAR,ARMAI,AMRAN,ARPATCONT,ARSVCCON,ARSVCCOP,MRTCDT,ARSTOP,ARAPTYP,ARPATSTAT,MULTAPTMDE,ARPARENT,ARNLT,ARPRER,ARORDN,VAOSGUID,EAS) ; "RTN","SDES",30,0) S ARIEN=$G(ARIEN,"") "RTN","SDES",31,0) S:ARIEN="" ARIEN=-1 ;Flag missing ARIEN when calling the update RPC "RTN","SDES",32,0) D ARSET Q "RTN","SDES",33,0) ARSET ;Called from APTREQCREATE and APTREQUPDATE tags "RTN","SDES",34,0) S DFN=$G(DFN),AREDT=$G(AREDT),ARINST=$G(ARINST),ARTYPE=$G(ARTYPE),ARCLIN=$G(ARCLIN),ARUSER=$G(ARUSER),ARREQBY=$G(ARREQBY),ARPROV=$G(ARPROV),ARDAPTDT=$G(ARDAPTDT),ARCOMM=$G(ARCOMM),ARENPRI=$G(ARENPRI) "RTN","SDES",35,0) S ARMAR=$G(ARMAR),ARMAI=$G(ARMAI),AMRAN=$G(AMRAN),ARPATCONT=$G(ARPATCONT),ARSVCCON=$G(ARSVCCON),ARSVCCOP=$G(ARSVCCOP),MRTCDT=$G(MRTCDT),ARSTOP=$G(ARSTOP),ARAPTYP=$G(ARAPTYP),ARPATSTAT=$G(ARPATSTAT) "RTN","SDES",36,0) S MULTAPTMDE=$G(MULTAPTMDE),ARPARENT=$G(ARPARENT),ARNLT=$G(ARNLT),ARPRER=$G(ARPRER),ARORDN=$G(ARORDN),VAOSGUID=$G(VAOSGUID) "RTN","SDES",37,0) S EAS=$G(EAS) "RTN","SDES",38,0) ; Because of an SAC limitation on the number of chars per line, addition of more parameters will require "RTN","SDES",39,0) ; this to be changed over to passing an array. "RTN","SDES",40,0) D ARSET^SDESAPTREQSET(.JSON,ARIEN,DFN,AREDT,ARINST,ARTYPE,ARCLIN,ARUSER,ARREQBY,ARPROV,ARDAPTDT,ARCOMM,ARENPRI,ARMAR,ARMAI,AMRAN,ARPATCONT,ARSVCCON,ARSVCCOP,MRTCDT,ARSTOP,ARAPTYP,ARPATSTAT,MULTAPTMDE,ARPARENT,ARNLT,ARPRER,ARORDN,VAOSGUID,EAS) "RTN","SDES",41,0) Q "RTN","SDES",42,0) ; Appointment Request Create/Edit "RTN","SDES",43,0) ; SD*5.3*806 "RTN","SDES",44,0) APTREQ44CRT(JSON,ARIEN,DFN,ARDAPTDT,ARLEN,ARRSN,ARUSER,ARODT,PATELG,AROVB) ; Create Appointment in #44 "RTN","SDES",45,0) N ARUPD "RTN","SDES",46,0) S ARUPD=0 "RTN","SDES",47,0) D ARSET44 "RTN","SDES",48,0) Q "RTN","SDES",49,0) APTREQ44EDIT(JSON,ARIEN,DFN,ARDAPTDT,ARLEN,ARRSN,ARUSER,ARODT,PATELG,AROVB) ; Edit Appointment in #44 "RTN","SDES",50,0) N ARUPD "RTN","SDES",51,0) S ARUPD=1 "RTN","SDES",52,0) D ARSET44 "RTN","SDES",53,0) Q "RTN","SDES",54,0) APTREQ40984CRT(JSON,SDAPTSTDTTM,SDAPTEDTTM,SDPATDFN,SDRESOURCE,SDATYPID,SDDDTTM,SDEXTID,SDAPTREQTYP,SDPROVIEN,SDCLNID,SDNOTE,SDAPTYP,SDEESTAT,SDAPTLEN,SDEAS) ; Create Appointment in #409.84 "RTN","SDES",55,0) D ARSET^SDESAPPTREQ40984(.JSON,$G(SDAPTSTDTTM),$G(SDAPTEDTTM),$G(SDPATDFN),$G(SDRESOURCE),$G(SDATYPID),$G(SDDDTTM),$G(SDEXTID),$G(SDAPTREQTYP),$G(SDPROVIEN),$G(SDCLNID),$G(SDNOTE),$G(SDAPTYP),$G(SDEESTAT),$G(SDAPTLEN),$G(SDEAS)) "RTN","SDES",56,0) Q "RTN","SDES",57,0) APTREQ40984EDIT(JSON,SDECAPTID,SDECNOTE,SDECLEN) ;Edit Appointment in SDEC APPOINTMENT File #409.84 - RPC: SDES EDIT APPT #409.84 "RTN","SDES",58,0) D EDITAPPT^SDESAPPTEDIT(.JSON,$G(SDECAPTID),$G(SDECNOTE),$G(SDECLEN)) "RTN","SDES",59,0) Q "RTN","SDES",60,0) ARSET44 ; Create/Edit Appointment in #44 "RTN","SDES",61,0) D ARSET^SDESAPTREQ44(.JSON,$G(ARUPD),$G(ARIEN),$G(DFN),$G(ARDAPTDT),$G(ARLEN),$G(ARRSN),$G(ARUSER),$G(ARODT),$G(PATELG),$G(AROVB)) "RTN","SDES",62,0) Q "RTN","SDES",63,0) ARCANCEL44(RETURN,SDDFN,SDCLNIEN,SDARDTTM) ; RPC: SDES CANCEL APPT #44 "RTN","SDES",64,0) D ARCANCEL44^SDESCANCELAPPT44(.RETURN,$G(SDDFN),$G(SDCLNIEN),$G(SDARDTTM)) Q "RTN","SDES",65,0) APTREQ2CRT(JSON,SDPATIENTDFN,SDCLNIEN,SDAPPTDTTM,SDLABDTTM,SDXRAYDTTM,SDEKGDTTM,SDVSTPURP,SDAPPTTYPE,SDCOLLATERAL,SDSCHREQTYPE,SDNXTAVAAPPT,SDFOLLOWUP) ; Create Appointment in #2 "RTN","SDES",66,0) N SDAPPTUPD "RTN","SDES",67,0) S SDAPPTUPD=0 "RTN","SDES",68,0) D ARSET2 "RTN","SDES",69,0) Q "RTN","SDES",70,0) APTREQ2EDIT(JSON,SDPATIENTDFN,SDCLNIEN,SDAPPTDTTM,SDLABDTTM,SDXRAYDTTM,SDEKGDTTM,SDVSTPURP,SDAPPTTYPE,SDCOLLATERAL,SDSCHREQTYPE,SDNXTAVAAPPT,SDFOLLOWUP) ; Edit Appointment in #2 "RTN","SDES",71,0) N SDAPPTUPD "RTN","SDES",72,0) S SDAPPTUPD=1 "RTN","SDES",73,0) D ARSET2 "RTN","SDES",74,0) Q "RTN","SDES",75,0) ARSET2 ; Create/Edit Appointment in #2 "RTN","SDES",76,0) D ARSET^SDESAPPTREQ2(.JSON,$G(SDAPPTUPD),$G(SDPATIENTDFN),$G(SDCLNIEN),$G(SDAPPTDTTM),$G(SDLABDTTM),$G(SDXRAYDTTM),$G(SDEKGDTTM),$G(SDVSTPURP),$G(SDAPPTTYPE),$G(SDCOLLATERAL),$G(SDSCHREQTYPE),$G(SDNXTAVAAPPT),$G(SDFOLLOWUP)) "RTN","SDES",77,0) Q "RTN","SDES",78,0) ARCANCEL2(RETURN,SDPATIENTDFN,SDCLNIEN,SDCANCELTYP,SDAPPTDTTM,SDCANCELDTTM,SDUSR,SDCANCELREASON,SDCANCELRMKS) ; RPC: SDES CANCEL APPT #2 "RTN","SDES",79,0) D ARCANCEL2^SDESCANCELAPPT2(.RETURN,$G(SDPATIENTDFN),$G(SDCLNIEN),$G(SDCANCELTYP),$G(SDAPPTDTTM),$G(SDCANCELDTTM),$G(SDUSR),$G(SDCANCELREASON),$G(SDCANCELRMKS)) Q "RTN","SDES",80,0) ; "RTN","SDES",81,0) CANCELAPPT(SDECY,APPTIEN,STATUS,CANREAS,USER,EAS) ;SDES CANCEL APPT - cancel appointment "RTN","SDES",82,0) D CANCELAPPT^SDESCANCELAPPT(.SDECY,$G(APPTIEN),$G(STATUS),$G(CANREAS),$G(USER),$G(EAS)) Q "RTN","SDES",83,0) ; "RTN","SDES",84,0) CHECKIN(JSON,SDECAPTID,SDECCDT,SDECCC,SDECPRV) ;SDES APPT CHECKIN JSON "RTN","SDES",85,0) D CHECKIN^SDES25(.JSON,$G(SDECAPTID),$G(SDECCDT),$G(SDECCC),$G(SDECPRV)) Q "RTN","SDES",86,0) ; "RTN","SDES",87,0) ;The parameter list for the clinic create and set use generic parameter names to ensure we stay in SAC compliance "RTN","SDES",88,0) ;with the length of a single line. "RTN","SDES",89,0) CLINICCREATE(RET,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40) ; "RTN","SDES",90,0) ;CLINICCREATE(RET,CLINIEN,R1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29) ; "RTN","SDES",91,0) S CLINIEN="" ;There will never be an IEN when calling this RPC "RTN","SDES",92,0) D CLINICSET Q "RTN","SDES",93,0) CLINICEDIT(RET,CLINIEN,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40) ; "RTN","SDES",94,0) S CLINIEN=$G(CLINIEN,"") "RTN","SDES",95,0) S:CLINIEN="" CLINIEN=-1 ;Flag missing ARIEN when calling the update RPC "RTN","SDES",96,0) D CLINICSET Q "RTN","SDES",97,0) CLINICSET ;Called from CLINICCREATE and CLINICUPDATE tags "RTN","SDES",98,0) S P1=$G(P1),P2=$G(P2),P3=$G(P3),P4=$G(P4),P5=$G(P5),P6=$G(P6),P7=$G(P7),P8=$G(P8),P9=$G(P9),P10=$G(P10),P11=$G(P11),P12=$G(P12),P13=$G(P13),P14=$G(P14),P15=$G(P15),P16=$G(P16),P17=$G(P17) "RTN","SDES",99,0) S P18=$G(P18),P19=$G(P19),P20=$G(P20),P21=$G(P21),P22=$G(P22),P23=$G(P23) "RTN","SDES",100,0) S P24=$G(P24),P25=$G(P25),P26=$G(P26),P27=$G(P27),P28=$G(P28),P29=$G(P29),P30=$G(P30),P31=$G(P31),P32=$G(P32),P33=$G(P33),P34=$G(P34),P35=$G(P35),P36=$G(P36),P37=$G(P37),P38=$G(P38),P39=$G(P39),P40=$G(P40) "RTN","SDES",101,0) D CLINICSET^SDESCLINICSET(.RET,CLINIEN,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40) "RTN","SDES",102,0) Q "RTN","SDES",103,0) ; "RTN","SDES",104,0) CLINICSEARCH(SDECY,SEARCHSTRING) ;Given a search string return a clinic list that matches. "RTN","SDES",105,0) D CLINICSEARCH^SDESSEARCH(.SDECY,$G(SEARCHSTRING)) Q "RTN","SDES",106,0) CLINICRSCSEARCH(SDECY,SEARCHSTRING) ;Given a search string return a clinic list that matches. "RTN","SDES",107,0) D CLINICRSC^SDES01C(.SDECY,$G(SEARCHSTRING)) Q "RTN","SDES",108,0) CREATEAPPTWRAPPR(JSONRETURN,APPTARRAY) ; SDES CREATE APPOINTMENTS ;Create appts in Files #409.84, #44, and #2. "RTN","SDES",109,0) D CREATEAPPTS^SDESCRTAPPTWRAP(.JSONRETURN,.APPTARRAY) Q "RTN","SDES",110,0) GETREGA(SDECY,DFN,EAS) ;SDES GET REGISTRATION INFO "RTN","SDES",111,0) D GETREGA^SDESGETREGA(.SDECY,$G(DFN),$G(EAS)) Q "RTN","SDES",112,0) INSURVERIFYREQ(JSON,DFN,EAS) ;SDES GET INSRUANCE VERIFY REQ "RTN","SDES",113,0) D INSURVERIFYREQ^SDESPATRPC(.JSON,$G(DFN),$G(EAS)) Q "RTN","SDES",114,0) INSURINDICATORS(RETURN,DFNS) ;SDES GET INSURANCE VERIFY LIST "RTN","SDES",115,0) D INSURINDICATORS^SDESPATRPC(.RETURN,.DFNS) "RTN","SDES",116,0) SPACEBAR(SDECY,SDECDIC,SDECVAL) ;EP Update ^DISV with most recent lookup value SDECVAL from file SDECDIC "RTN","SDES",117,0) D SPACEBAR^SDES30(.SDECY,$G(SDECDIC),$G(SDECVAL)) Q "RTN","SDES",118,0) JSONINACTCLN(SDEC,CLINICIEN,EAS) ;EP RPC: SDES INACTIVATE CLINIC "RTN","SDES",119,0) D JSONINACTCLN^SDESINACTCLINIC(.SDEC,$G(CLINICIEN),$G(EAS)) Q "RTN","SDES",120,0) JSONCLNINFO(SDEC,CLINICIEN,EAS) ;EP RPC: SDES GET CLINIC INFO "RTN","SDES",121,0) D JSONCLNINFO^SDESRTVCLN(.SDEC,$G(CLINICIEN),$G(EAS)) Q "RTN","SDES",122,0) SETCLINAVAIL(RETURN,SDCLINIC,DATES,TIMES,SLOTS,SDEAS) ; RPC: SDES SET CLINIC AVAILABILITY "RTN","SDES",123,0) D SETCLINAVAIL^SDESCLNSETAVAIL(.RETURN,$G(SDCLINIC),$G(DATES),$G(TIMES),$G(SLOTS),$G(SDEAS)) Q "RTN","SDES",124,0) GETCLNAVAILABLTY(RET,CLINICIEN,SDESSTART,SDESENDDATE,EAS) ;EP RPC: SDES GET CLINIC AVAILABILITY-retrieve clinic availablity in a given timeframe "RTN","SDES",125,0) D GETCLAVAILABLTY^SDESCLINICAVAIL(.RET,$G(CLINICIEN),$G(SDESSTART),$G(SDESENDDATE),$G(EAS)) Q "RTN","SDES",126,0) CANCLNAVAILABLTY(RET,SDCLNIEN,SDESCANDATE,SDESSTRTIM,SDESENDTIM,SDCANREM,SDEAS) ;Called from RPC: SDES CANCEL CLINIC AVAILABILITY "RTN","SDES",127,0) D CANCLAVAIL^SDESCCAVAIL(.RET,$G(SDCLNIEN),$G(SDESCANDATE),$G(SDESSTRTIM),$G(SDESENDTIM),$G(SDCANREM),$G(SDEAS)) Q "RTN","SDES",128,0) GETALLAPPTS(SDECY,DFN) ; SDES GET PATIENT APPTS BY DFN #2 "RTN","SDES",129,0) D GETALLAPPTS^SDESGETPATAPPT(.SDECY,$G(DFN)) Q "RTN","SDES",130,0) GETSINGLEAPPT(SDECY,DFN,DATETIME,CLINIC) ; SDES GET PATIENT APPT BY IEN #2 "RTN","SDES",131,0) D GETSINGLEAPPT^SDESGETPATAPPT(.SDECY,$G(DFN),$G(DATETIME),$G(CLINIC)) Q "RTN","SDES",132,0) GETUSRDTL(RET,SDSECID,EAS) ;Called from RPC: SDES GET USER PROFILE "RTN","SDES",133,0) D GETUSRDTL^SDESGETUD(.RET,$G(SDSECID),$G(EAS)) Q "RTN","SDES",134,0) GETUSRDTLDUZ(RET,SDUSRIEN,EAS) ;Called from RPC: SDES GET USER PROFILE BY DUZ "RTN","SDES",135,0) D GETUSRDTL^SDESGETUDDUZ(.RET,$G(SDUSRIEN),$G(EAS)) Q "RTN","SDES",136,0) RECGETLIST(SDECY,DFN,EAS) ; Get recalls based on patient DFN "RTN","SDES",137,0) D RECGETLIST^SDESGETRECALL(.SDECY,$G(DFN),$G(EAS)) Q "RTN","SDES",138,0) RECGETONE(SDECY,IEN,EAS) ; Get recall based on IEN "RTN","SDES",139,0) D RECGETONE^SDESGETRECALL(.SDECY,$G(IEN),$G(EAS)) Q "RTN","SDES",140,0) UPDRECALLREQ(RETN,RECALLIEN,DFN,ACCNO,SDCMT,FASTING,APPTP,RRPROVIEN,CLINIEN,APPTLEN,DATE,RECPPDT,DAPTDT,USERIEN,SECPDT,EAS) ;update recall request "RTN","SDES",141,0) D UPDRECALLREQ^SDESUPDRECREQ(.RETN,$G(RECALLIEN),$G(DFN),$G(ACCNO),$G(SDCMT),$G(FASTING),$G(APPTP),$G(RRPROVIEN),$G(CLINIEN),$G(APPTLEN),$G(DATE),$G(RECPPDT),$G(DAPTDT),$G(USERIEN),$G(SECPDT),$G(EAS)) Q "RTN","SDES",142,0) CREATERECREQ(RETN,DFN,ACCNO,SDCMT,FASTING,APPTP,RRPROVIEN,CLINIEN,APPTLEN,DATE,RECPPDT,DAPTDT,USERIEN,SECPDT,SDENTDT,EAS) ;update recall request "RTN","SDES",143,0) D CREATERECREQ^SDESUPDRECREQ(.RETN,$G(DFN),$G(ACCNO),$G(SDCMT),$G(FASTING),$G(APPTP),$G(RRPROVIEN),$G(CLINIEN),$G(APPTLEN),$G(DATE),$G(RECPPDT),$G(DAPTDT),$G(USERIEN),$G(SECPDT),$G(SDENTDT),$G(EAS)) Q "RTN","SDES",144,0) DISPRECALL(SDECY,RECALLIEN,REASON,COMMENT,EAS) ; for a PtCSch request, set disposition reason and DELETE an entry from the RECALL REMINDERS file 403.5 "RTN","SDES",145,0) D DISPRECALL^SDESDISPRECALL(.SDECY,$G(RECALLIEN),$G(REASON),$G(COMMENT),$G(EAS)) Q "RTN","SDES",146,0) GETAPPOINTMENTS(SDECY,SDCLIN,SDSTDTTM,SDENDDTTM) ;get appointments for clinic out of file 44 "RTN","SDES",147,0) D GETAPPOINTMENTS^SDESGETCLINAPPT(.SDECY,$G(SDCLIN),$G(SDSTDTTM),$G(SDENDDTTM)) Q "RTN","SDES",148,0) GETSTOPCODE(SDECY,SDSTCD) ;get stop code details out of file 40.7 "RTN","SDES",149,0) D GETSTCDDTL^SDESGETSTOPCODE(.SDECY,$G(SDSTCD)) Q "RTN","SDES",150,0) GETPATCHNUM(SDECY) ; get latest SD patch number installed on system "RTN","SDES",151,0) D GETPATCHNUM^SDESPATCHINFO(.SDECY) Q "RTN","SDES",152,0) GETMISSIONELG(SDECY,APPTREQIEN,PID,APPTREQTYP,SDEAS) ; "RTN","SDES",153,0) D GETMISSIONELG^SDESMISSIONELG(.SDECY,$G(APPTREQIEN),$G(PID),$G(APPTREQTYP),$G(SDEAS)) Q "RTN","SDES",154,0) PRINTPATAPPTS(SDECY,SDDFN,SDBEGIN,SDEND,EAS) ;print patient friend appointments "RTN","SDES",155,0) S:$G(SDBEGIN)'="" SDBEGIN=$$ISOTFM^SDAMUTDT(SDBEGIN) "RTN","SDES",156,0) S:$G(SDEND)'="" SDEND=$$ISOTFM^SDAMUTDT(SDEND) "RTN","SDES",157,0) S:$G(SDBEGIN)="" SDBEGIN=$$NOW^XLFDT "RTN","SDES",158,0) S:$G(SDEND)="" SDEND=$$FMADD^XLFDT(SDBEGIN,90) "RTN","SDES",159,0) D PRINTPATAPPTS^SDESPRINTPATAPPT(.SDECY,$G(SDDFN),$G(SDBEGIN),$G(SDEND),$G(EAS)) Q "RTN","SDES",160,0) Q "RTN","SDES",161,0) ;Based on Patient DFN, retrieve and return all appointments associated with a patient from SDEC APPOINTMENT File #409.84, "RTN","SDES",162,0) ;HOSPITAL LOCATION File #44, and the Appointment Multiple Patient File #2 "RTN","SDES",163,0) GETAPPTWRAPDFN(SDECY,SDDFN,SDBEGIN,SDEND) ;Called from RPC: SDES GET APPTS BY DFN #2 "RTN","SDES",164,0) N SDVIEWAPPTBY "RTN","SDES",165,0) S SDVIEWAPPTBY=0 "RTN","SDES",166,0) D GETAPPTS^SDESGETAPPTWRAP(.SDECY,$G(SDDFN),$G(SDBEGIN),$G(SDEND)) "RTN","SDES",167,0) Q "RTN","SDES",168,0) ;Based on CLINIC IEN, retrieve and return all appointments associated with a clinic from SDEC APPOINTMENT File #409.84, "RTN","SDES",169,0) ;HOSPITAL LOCATION File #44, and the Appointment Multiple Patient File #2 "RTN","SDES",170,0) GETAPPTWRAPCLIN(SDECY,SDCLINIEN,SDBEGIN,SDEND) ;;Called from RPC: SDES GET APPTS BY CLINIC #44 "RTN","SDES",171,0) N SDVIEWAPPTBY "RTN","SDES",172,0) S SDVIEWAPPTBY=1 "RTN","SDES",173,0) D GETAPPTS^SDESGETAPPTWRAP(.SDECY,$G(SDCLINIEN),$G(SDBEGIN),$G(SDEND)) "RTN","SDES",174,0) Q "RTN","SDESAPPTDATA") 0^12^B12687619^B11227759 "RTN","SDESAPPTDATA",1,0) SDESAPPTDATA ;ALB/TAW/RRM - VISTA Appointment data getter ;May 26, 2021@15:22 "RTN","SDESAPPTDATA",2,0) ;;5.3;Scheduling;**788,814**;Aug 13, 1993;Build 11 "RTN","SDESAPPTDATA",3,0) ;;Per VHA Directive 6402, this routine should not be modified "RTN","SDESAPPTDATA",4,0) Q "RTN","SDESAPPTDATA",5,0) ; The intention of this rtn is to return a unique set of data from the Appointment "RTN","SDESAPPTDATA",6,0) ;File (409.84) for a specifc IEN. "RTN","SDESAPPTDATA",7,0) ; "RTN","SDESAPPTDATA",8,0) ; It is assumed by getting here all business logic and validation has been performed. "RTN","SDESAPPTDATA",9,0) ; "RTN","SDESAPPTDATA",10,0) ; This routine should only be used for retrieving data from the Appointment file. "RTN","SDESAPPTDATA",11,0) ; "RTN","SDESAPPTDATA",12,0) SUMMARY(APPTDATA,IEN) ; "RTN","SDESAPPTDATA",13,0) ;Returns a basic set of data for a specific appointment "RTN","SDESAPPTDATA",14,0) ; "RTN","SDESAPPTDATA",15,0) ; Input "RTN","SDESAPPTDATA",16,0) ; IEN - Specific appointment IEN "RTN","SDESAPPTDATA",17,0) ; Return "RTN","SDESAPPTDATA",18,0) ; APPTDATA - Array of field names and the data for the field based on the IEN "RTN","SDESAPPTDATA",19,0) ; "RTN","SDESAPPTDATA",20,0) N APPTARY,FN,IENS,SDMSG,DFN,RESOURCEIEN,CLINICIEN,SIEN,OVERBOOK,STIME,ETIME,X "RTN","SDESAPPTDATA",21,0) N DATETIME,NUM,STATPOINTER,CLINICARY,STAT,CLINICDATA "RTN","SDESAPPTDATA",22,0) K APPTDATA "RTN","SDESAPPTDATA",23,0) S FN=409.84,IENS=IEN_",",OVERBOOK=0 "RTN","SDESAPPTDATA",24,0) D GETS^DIQ(FN,IEN,".01;.02;.03;.04;.05;.06;.07;.14;.17;.18;1;3;100","IE","APPTARY","SDMSG") ;SD,814-Added 100 for the EAS Tracking Number "RTN","SDESAPPTDATA",25,0) S APPTDATA("StartTime")=$G(APPTARY(FN,IENS,.01,"E")) "RTN","SDESAPPTDATA",26,0) S APPTDATA("StartTimeFM")=$G(APPTARY(FN,IENS,.01,"I")) "RTN","SDESAPPTDATA",27,0) S STIME=$G(APPTARY(FN,IENS,.01,"I")) "RTN","SDESAPPTDATA",28,0) S APPTDATA("EndTime")=$G(APPTARY(FN,IENS,.02,"E")) "RTN","SDESAPPTDATA",29,0) S ETIME=$G(APPTARY(FN,IENS,.02,"I")) "RTN","SDESAPPTDATA",30,0) S APPTDATA("AppointmentTypeIEN")=$G(APPTARY(FN,IENS,.06,"I")) "RTN","SDESAPPTDATA",31,0) S APPTDATA("LengthOfAppt")=$G(APPTARY(FN,IENS,.18,"E")) "RTN","SDESAPPTDATA",32,0) K APPTARY(FN,IENS,1,"I"),APPTARY(FN,IENS,1,"E") "RTN","SDESAPPTDATA",33,0) I $D(APPTARY(FN,IENS,1)) M APPTDATA("Note")=APPTARY(FN,IENS,1) "RTN","SDESAPPTDATA",34,0) E S APPTDATA("Note")="" "RTN","SDESAPPTDATA",35,0) S APPTDATA("AppointmentIEN")=IEN "RTN","SDESAPPTDATA",36,0) S DATETIME=$G(APPTARY(FN,IENS,.03,"E")) "RTN","SDESAPPTDATA",37,0) S APPTDATA("CheckIn")=$$FMTE^XLFDT(DATETIME) "RTN","SDESAPPTDATA",38,0) S DATETIME=$G(APPTARY(FN,IENS,.04,"E")) "RTN","SDESAPPTDATA",39,0) S APPTDATA("CheckInEntered")=$$FMTE^XLFDT(DATETIME) "RTN","SDESAPPTDATA",40,0) S DATETIME=$G(APPTARY(FN,IENS,.14,"E")) "RTN","SDESAPPTDATA",41,0) S APPTDATA("CheckOut")=$$FMTE^XLFDT(DATETIME) "RTN","SDESAPPTDATA",42,0) S APPTDATA("Status")=$G(APPTARY(FN,IENS,.17,"E")) "RTN","SDESAPPTDATA",43,0) S APPTDATA("EASTrackingNumber")=$G(APPTARY(FN,IENS,100,"I")) ;SD,814-Retrieve EAS Tracking Number "RTN","SDESAPPTDATA",44,0) ; "RTN","SDESAPPTDATA",45,0) ;Always sent these Resource / Clinic data elements "RTN","SDESAPPTDATA",46,0) S APPTDATA("Clinic","IsOverbook")=0 "RTN","SDESAPPTDATA",47,0) S RESOURCEIEN=$G(APPTARY(FN,IENS,.07,"I")) "RTN","SDESAPPTDATA",48,0) S APPTDATA("ResourceIEN")=RESOURCEIEN "RTN","SDESAPPTDATA",49,0) S APPTDATA("Resource","Name")=$G(APPTARY(FN,IENS,.07,"E")) "RTN","SDESAPPTDATA",50,0) S CLINICIEN=$$GET1^DIQ(409.831,RESOURCEIEN,.04,"I") "RTN","SDESAPPTDATA",51,0) S APPTDATA("Resource","ClinicIEN")=CLINICIEN "RTN","SDESAPPTDATA",52,0) D APPTCLINIC^SDESCLINICDATA(.CLINICDATA,CLINICIEN) "RTN","SDESAPPTDATA",53,0) M APPTDATA("Clinic")=CLINICDATA "RTN","SDESAPPTDATA",54,0) I CLINICIEN D "RTN","SDESAPPTDATA",55,0) .S SIEN=0 "RTN","SDESAPPTDATA",56,0) .F S SIEN=$O(^SC(CLINICIEN,"S",STIME,SIEN)) Q:'SIEN D "RTN","SDESAPPTDATA",57,0) ..S X=$O(^SC(CLINICIEN,"S",STIME,SIEN,""),-1) "RTN","SDESAPPTDATA",58,0) ..S:X OVERBOOK=$G(^SC(CLINICIEN,"S",STIME,SIEN,X,"OB")) "RTN","SDESAPPTDATA",59,0) I OVERBOOK="O" S APPTDATA("Clinic","IsOverbook")=1 "RTN","SDESAPPTDATA",60,0) ; "RTN","SDESAPPTDATA",61,0) S (SIEN,NUM)=0 "RTN","SDESAPPTDATA",62,0) F S SIEN=$O(^SDEC(409.84,IEN,3,SIEN)) Q:'SIEN D "RTN","SDESAPPTDATA",63,0) .S NUM=NUM+1 "RTN","SDESAPPTDATA",64,0) .S STATPOINTER=$$GET1^DIQ(409.843,SIEN_","_IEN_",",.01,"I") "RTN","SDESAPPTDATA",65,0) .S STAT=$$GET1^DIQ(409.842,STATPOINTER,.01,"E") "RTN","SDESAPPTDATA",66,0) .S DATETIME=$$GET1^DIQ(409.843,SIEN_","_IEN_",",1,"E") "RTN","SDESAPPTDATA",67,0) .S APPTDATA("CheckInSteps",NUM,"IEN")=SIEN "RTN","SDESAPPTDATA",68,0) .S APPTDATA("CheckInSteps",NUM,"Status")=$G(STAT) "RTN","SDESAPPTDATA",69,0) .S APPTDATA("CheckInSteps",NUM,"DateTime")=$$FMTE^XLFDT(DATETIME) "RTN","SDESAPPTDATA",70,0) I '$D(APPTDATA("CheckInSteps")) S APPTDATA("CheckInSteps")="" "RTN","SDESAPPTDATA",71,0) ; "RTN","SDESAPPTDATA",72,0) ;Always send these Patient data elements "RTN","SDESAPPTDATA",73,0) S DFN=$G(APPTARY(FN,IENS,.05,"I")) "RTN","SDESAPPTDATA",74,0) S APPTDATA("DFN")=DFN "RTN","SDESAPPTDATA",75,0) S APPTDATA("Patient","EligibilityIEN")=$$GET1^DIQ(2,DFN,.361,"I") "RTN","SDESAPPTDATA",76,0) S APPTDATA("Patient","Name")=$$GET1^DIQ(2,DFN,.01,"E") "RTN","SDESAPPTDATA",77,0) Q "RTN","SDESCREATEAPPT") 0^18^B53991455^n/a "RTN","SDESCREATEAPPT",1,0) SDESCREATEAPPT ;ALB/BLB - VISTA SCHEDULING RPCS; Apr 4, 2022@15:20 "RTN","SDESCREATEAPPT",2,0) ;;5.3;Scheduling;**814**;Aug 13, 1993;Build 11 "RTN","SDESCREATEAPPT",3,0) ;;Per VHA Directive 6402, this routine should not be modified "RTN","SDESCREATEAPPT",4,0) ; "RTN","SDESCREATEAPPT",5,0) ;----------------- ----------------- ---------- "RTN","SDESCREATEAPPT",6,0) ; "RTN","SDESCREATEAPPT",7,0) Q "RTN","SDESCREATEAPPT",8,0) ; "RTN","SDESCREATEAPPT",9,0) ; create appt in file 409.84. Called from wrapper level SDESCRTAPPTWRAP. See SDESCRTAPPTWRAP for required inputs. "RTN","SDESCREATEAPPT",10,0) ; "RTN","SDESCREATEAPPT",11,0) VALIDATE(ERRORS,ARY84) ; Validate input "RTN","SDESCREATEAPPT",12,0) N MAXDAYS,SDECRNOD,RESOURCED,ENCOUNTER "RTN","SDESCREATEAPPT",13,0) ; "RTN","SDESCREATEAPPT",14,0) ; appointment Start Date and Time "RTN","SDESCREATEAPPT",15,0) S ARY84("SDAPPTSTARTDTTM")=$G(ARY84("SDAPPTSTARTDTTM"),"") "RTN","SDESCREATEAPPT",16,0) I ARY84("SDAPPTSTARTDTTM")="" D ERRLOG^SDESJSON(.ERRORS,165) Q "RTN","SDESCREATEAPPT",17,0) S ARY84("SDAPPTSTARTDTTM")=$$ISOTFM^SDAMUTDT(ARY84("SDAPPTSTARTDTTM"),ARY84("CLINICIEN")) "RTN","SDESCREATEAPPT",18,0) I ARY84("SDAPPTSTARTDTTM")=-1 D ERRLOG^SDESJSON(.ERRORS,166) Q "RTN","SDESCREATEAPPT",19,0) ; "RTN","SDESCREATEAPPT",20,0) ; appointment End Date and Time "RTN","SDESCREATEAPPT",21,0) S ARY84("SDAPPTENDDTTM")=$G(ARY84("SDAPPTENDDTTM"),"") "RTN","SDESCREATEAPPT",22,0) I ARY84("SDAPPTENDDTTM")="" D ERRLOG^SDESJSON(.ERRORS,167) Q "RTN","SDESCREATEAPPT",23,0) S ARY84("SDAPPTENDDTTM")=$$ISOTFM^SDAMUTDT(ARY84("SDAPPTENDDTTM"),ARY84("CLINICIEN")) "RTN","SDESCREATEAPPT",24,0) I ARY84("SDAPPTENDDTTM")=-1!($L(ARY84("SDAPPTENDDTTM"),".")=1) D ERRLOG^SDESJSON(.ERRORS,168) Q "RTN","SDESCREATEAPPT",25,0) I ARY84("SDAPPTSTARTDTTM")>ARY84("SDAPPTENDDTTM") D ERRLOG^SDESJSON(.ERRORS,13) Q "RTN","SDESCREATEAPPT",26,0) ; "RTN","SDESCREATEAPPT",27,0) ; patient DFN "RTN","SDESCREATEAPPT",28,0) S ARY84("DFN")=$G(ARY84("DFN"),"") "RTN","SDESCREATEAPPT",29,0) I ARY84("DFN")="" D ERRLOG^SDESJSON(.ERRORS,1) Q "RTN","SDESCREATEAPPT",30,0) I ARY84("DFN")'="",'$D(^DPT(+ARY84("DFN"),0)) D ERRLOG^SDESJSON(.ERRORS,2) Q "RTN","SDESCREATEAPPT",31,0) ; "RTN","SDESCREATEAPPT",32,0) ; clinic IEN "RTN","SDESCREATEAPPT",33,0) S ARY84("CLINICIEN")=$G(ARY84("CLINICIEN"),"") "RTN","SDESCREATEAPPT",34,0) I ARY84("CLINICIEN")="" D ERRLOG^SDESJSON(.ERRORS,18) Q "RTN","SDESCREATEAPPT",35,0) I '$D(^SC(+ARY84("CLINICIEN"),0)) D ERRLOG^SDESJSON(.ERRORS,19) Q "RTN","SDESCREATEAPPT",36,0) ; "RTN","SDESCREATEAPPT",37,0) ; resource "RTN","SDESCREATEAPPT",38,0) S ARY84("SDRESOURCE")=$G(ARY84("SDRESOURCE"),"") "RTN","SDESCREATEAPPT",39,0) I ARY84("SDRESOURCE")="" D ERRLOG^SDESJSON(.ERRORS,69) Q "RTN","SDESCREATEAPPT",40,0) I +ARY84("SDRESOURCE"),'$D(^SDEC(409.831,ARY84("SDRESOURCE"),0)) D ERRLOG^SDESJSON(.ERRORS,70) Q "RTN","SDESCREATEAPPT",41,0) ; "RTN","SDESCREATEAPPT",42,0) ; max days in future allowed to schedule in clinic "RTN","SDESCREATEAPPT",43,0) I $D(^SC(ARY84("CLINICIEN"),"SDP")) D "RTN","SDESCREATEAPPT",44,0) .S MAXDAYS=$$GET1^DIQ(44,ARY84("CLINICIEN"),2002) "RTN","SDESCREATEAPPT",45,0) .I MAXDAYS="" S MAXDAYS=390 "RTN","SDESCREATEAPPT",46,0) I ARY84("SDAPPTSTARTDTTM")>$$FMADD^XLFDT($$NOW^XLFDT(),MAXDAYS) D ERRLOG^SDESJSON(.ERRORS,177) Q "RTN","SDESCREATEAPPT",47,0) ; "RTN","SDESCREATEAPPT",48,0) ; access Type ID "RTN","SDESCREATEAPPT",49,0) S ARY84("WALKIN")=$G(ARY84("WALKIN"),"") "RTN","SDESCREATEAPPT",50,0) I ARY84("WALKIN")'="",ARY84("WALKIN")'="Y",ARY84("WALKIN")'="N" D ERRLOG^SDESJSON(.ERRORS,178) Q "RTN","SDESCREATEAPPT",51,0) ; "RTN","SDESCREATEAPPT",52,0) ; desired Date of Appointment "RTN","SDESCREATEAPPT",53,0) S ARY84("SDESIREDTTM")=$G(ARY84("SDESIREDTTM"),"") "RTN","SDESCREATEAPPT",54,0) I ARY84("SDESIREDTTM")'="" S ARY84("SDESIREDTTM")=$$ISOTFM^SDAMUTDT(ARY84("SDESIREDTTM"),ARY84("CLINICIEN")) "RTN","SDESCREATEAPPT",55,0) I ARY84("SDESIREDTTM")=-1 D ERRLOG^SDESJSON(.ERRORS,58) Q "RTN","SDESCREATEAPPT",56,0) ; "RTN","SDESCREATEAPPT",57,0) ; appt request type "RTN","SDESCREATEAPPT",58,0) S ARY84("SDREQTYPE")=$G(ARY84("SDREQTYPE"),"") "RTN","SDESCREATEAPPT",59,0) I ARY84("SDREQTYPE")="" D ERRLOG^SDESJSON(.ERRORS,60) Q "RTN","SDESCREATEAPPT",60,0) I ";E;R;C;A;"'[(";"_$P(ARY84("SDREQTYPE"),"|",1)_";") D ERRLOG^SDESJSON(.ERRORS,61) Q "RTN","SDESCREATEAPPT",61,0) I +$P(ARY84("SDREQTYPE"),"|",2)=0 D ERRLOG^SDESJSON(.ERRORS,61) Q "RTN","SDESCREATEAPPT",62,0) I ARY84("SDREQTYPE")'="" D "RTN","SDESCREATEAPPT",63,0) .I $P(ARY84("SDREQTYPE"),"|",1)="E" I '$D(^SDWL(409.3,+$P(ARY84("SDREQTYPE"),"|",2),0)) S ARY84("SDREQTYPE")="" "RTN","SDESCREATEAPPT",64,0) .I $P(ARY84("SDREQTYPE"),"|",1)="R" I '$D(^SD(403.5,+$P(ARY84("SDREQTYPE"),"|",2),0)) S ARY84("SDREQTYPE")="" "RTN","SDESCREATEAPPT",65,0) .I $P(ARY84("SDREQTYPE"),"|",1)="C" I '$D(^GMR(123,+$P(ARY84("SDREQTYPE"),"|",2),0)) S ARY84("SDREQTYPE")="" "RTN","SDESCREATEAPPT",66,0) .I $P(ARY84("SDREQTYPE"),"|",1)="A" I '$D(^SDEC(409.85,+$P(ARY84("SDREQTYPE"),"|",2),0)) S ARY84("SDREQTYPE")="" "RTN","SDESCREATEAPPT",67,0) I ARY84("SDREQTYPE")="" D ERRLOG^SDESJSON(.ERRORS,61) Q "RTN","SDESCREATEAPPT",68,0) ; "RTN","SDESCREATEAPPT",69,0) ; note "RTN","SDESCREATEAPPT",70,0) S ARY84("SDNOTE")=$G(ARY84("SDNOTE"),"") S:ARY84("SDNOTE")'="" ARY84("SDNOTE")=$TR($E(ARY84("SDNOTE"),1,150),"^"," ") "RTN","SDESCREATEAPPT",71,0) ; "RTN","SDESCREATEAPPT",72,0) ; appointment Type "RTN","SDESCREATEAPPT",73,0) S ARY84("SDAPPTYPE")=$G(ARY84("SDAPPTYPE"),"") "RTN","SDESCREATEAPPT",74,0) I ARY84("SDAPPTYPE")="" D ERRLOG^SDESJSON(.ERRORS,60) Q "RTN","SDESCREATEAPPT",75,0) I ARY84("SDAPPTYPE")'="",('$D(^SD(409.1,"B",ARY84("SDAPPTYPE")))) D ERRLOG^SDESJSON(.ERRORS,61) Q "RTN","SDESCREATEAPPT",76,0) I ARY84("SDAPPTYPE")'="",($D(^SD(409.1,"B",ARY84("SDAPPTYPE")))) S ARY84("SDAPPTYPE")=$O(^SD(409.1,"B",ARY84("SDAPPTYPE"),0)) "RTN","SDESCREATEAPPT",77,0) ; "RTN","SDESCREATEAPPT",78,0) ; patient Status "RTN","SDESCREATEAPPT",79,0) S ARY84("SDPATIENTSTATUS")=$G(ARY84("SDPATIENTSTATUS")) "RTN","SDESCREATEAPPT",80,0) I ARY84("SDPATIENTSTATUS")="" D "RTN","SDESCREATEAPPT",81,0) .I $P(ARY84("SDREQTYPE"),"|",1)="A" S ARY84("SDPATIENTSTATUS")=$$GET1^DIQ(409.3,$P(ARY84("SDREQTYPE"),"|",2)_",",.02,"I") "RTN","SDESCREATEAPPT",82,0) S ARY84("SDPATIENTSTATUS")=$S(ARY84("SDPATIENTSTATUS")="N":"N",ARY84("SDPATIENTSTATUS")="NEW":"N",ARY84("SDPATIENTSTATUS")="E":"E",ARY84("SDPATIENTSTATUS")="ESTABLISHED":"E",1:"") "RTN","SDESCREATEAPPT",83,0) ; "RTN","SDESCREATEAPPT",84,0) ; appt length - if passed in, must be 5-120 "RTN","SDESCREATEAPPT",85,0) S ARY84("SDAPPTLENGTH")=$G(ARY84("SDAPPTLENGTH")) "RTN","SDESCREATEAPPT",86,0) I ((ARY84("SDAPPTLENGTH")'="")&((+ARY84("SDAPPTLENGTH")<5)!(+ARY84("SDAPPTLENGTH")>120))) D ERRLOG^SDESJSON(.ERRORS,116) Q "RTN","SDESCREATEAPPT",87,0) ; "RTN","SDESCREATEAPPT",88,0) ; validate EAS "RTN","SDESCREATEAPPT",89,0) S ARY84("SDEAS")=$G(ARY84("SDEAS"),"") "RTN","SDESCREATEAPPT",90,0) I $L(ARY84("SDEAS")) S ARY84("SDEAS")=$$EASVALIDATE^SDESUTIL(ARY84("SDEAS")) "RTN","SDESCREATEAPPT",91,0) I $G(ARY84("SDEAS"))=-1 D ERRLOG^SDESJSON(.ERRORS,142) Q "RTN","SDESCREATEAPPT",92,0) ; "RTN","SDESCREATEAPPT",93,0) ; validate provider "RTN","SDESCREATEAPPT",94,0) I '$D(^VA(200,+$G(ARY84("SDPROVIEN")),0)) S ARY84("SDPROVIEN")="" "RTN","SDESCREATEAPPT",95,0) I $P(ARY84("SDREQTYPE"),"|",1)="R" D "RTN","SDESCREATEAPPT",96,0) .S ARY84("SDPROVIEN")=$$GET1^DIQ(403.54,ARY84("SDPROVIEN"),.01,"I") "RTN","SDESCREATEAPPT",97,0) I ARY84("SDPROVIEN")="" S ARY84("SDPROVIEN")=$$GET1^DIQ(44,ARY84("CLINICIEN")_",",16,"I") "RTN","SDESCREATEAPPT",98,0) S ARY84("SDEXTERNALID")=$G(ARY84("SDEXTERNALID"),"") "RTN","SDESCREATEAPPT",99,0) ; "RTN","SDESCREATEAPPT",100,0) ;validate MTRC flag (optional) "RTN","SDESCREATEAPPT",101,0) S ARY84("SDMRTC")=$G(ARY84("SDMRTC"),"") "RTN","SDESCREATEAPPT",102,0) S ARY84("SDMRTC")=$$UP^XLFSTR($G(ARY84("SDMRTC"))) "RTN","SDESCREATEAPPT",103,0) S ARY84("SDMRTC")=$S(ARY84("SDMRTC")="TRUE":1,1:0) "RTN","SDESCREATEAPPT",104,0) ; "RTN","SDESCREATEAPPT",105,0) ;validate parent "RTN","SDESCREATEAPPT",106,0) I ARY84("SDPARENT")'="" D "RTN","SDESCREATEAPPT",107,0) .I '$D(^SDEC(409.85,ARY84("SDPARENT"))) D ERRLOG^SDESJSON(.ERRORS,179) Q "RTN","SDESCREATEAPPT",108,0) ; "RTN","SDESCREATEAPPT",109,0) ;validate service connected "RTN","SDESCREATEAPPT",110,0) S ARY84("SDSERVCONNPERC")=$G(ARY84("SDSERVCONNPERC"),"") "RTN","SDESCREATEAPPT",111,0) I ARY84("SDSERVCONNPERC")'="" S:(+ARY84("SDSERVCONNPERC")<0)!(+ARY84("SDSERVCONNPERC")>100) ARY84("SDSERVCONNPERC")="" "RTN","SDESCREATEAPPT",112,0) S ARY84("SDSERVCONN")=$G(ARY84("SDSERVCONN"),"") "RTN","SDESCREATEAPPT",113,0) S ARY84("SDSERVCONN")=$S(ARY84("SDSERVCONN")=0:0,ARY84("SDSERVCONN")="NO":0,ARY84("SDSERVCONN")=1:1,ARY84("SDSERVCONN")="YES":1,1:"") "RTN","SDESCREATEAPPT",114,0) ; "RTN","SDESCREATEAPPT",115,0) Q "RTN","SDESCREATEAPPT",116,0) CREATE(ARY84FDA,ARY84) ; "RTN","SDESCREATEAPPT",117,0) N SDREQTYPE "RTN","SDESCREATEAPPT",118,0) S SDREQTYPE=ARY84("SDREQTYPE") "RTN","SDESCREATEAPPT",119,0) S ARY84FDA(409.84,"+1,",.01)=$G(ARY84("SDAPPTSTARTDTTM")) "RTN","SDESCREATEAPPT",120,0) S ARY84FDA(409.84,"+1,",.02)=$G(ARY84("SDAPPTENDDTTM")) "RTN","SDESCREATEAPPT",121,0) S ARY84FDA(409.84,"+1,",.05)=$G(ARY84("DFN")) "RTN","SDESCREATEAPPT",122,0) S ARY84FDA(409.84,"+1,",.06)=$G(ARY84("SDAPPTYPE")) "RTN","SDESCREATEAPPT",123,0) S ARY84FDA(409.84,"+1,",.07)=$G(ARY84("SDRESOURCE")) "RTN","SDESCREATEAPPT",124,0) S ARY84FDA(409.84,"+1,",.08)=$G(DUZ) "RTN","SDESCREATEAPPT",125,0) S ARY84FDA(409.84,"+1,",.09)=$G(DT) "RTN","SDESCREATEAPPT",126,0) S ARY84FDA(409.84,"+1,",.13)=$G(ARY84("WALKIN")) "RTN","SDESCREATEAPPT",127,0) S ARY84FDA(409.84,"+1,",.16)=$G(ARY84("SDPROVIEN")) "RTN","SDESCREATEAPPT",128,0) S ARY84FDA(409.84,"+1,",.18)=$G(ARY84("SDAPPTLENGTH")) "RTN","SDESCREATEAPPT",129,0) S ARY84FDA(409.84,"+1,",.2)=$G(ARY84("SDESIREDTTM")) "RTN","SDESCREATEAPPT",130,0) S ARY84FDA(409.84,"+1,",.21)=$G(ARY84("SDEXTERNALID")) "RTN","SDESCREATEAPPT",131,0) S ARY84FDA(409.84,"+1,",.22)=$S(SDREQTYPE'="":$P(SDREQTYPE,"|",2)_";"_$S($P(SDREQTYPE,"|",1)="E":"SDWL(409.3,",$P(SDREQTYPE,"|",1)="C":"GMR(123,",$P(SDREQTYPE,"|",1)="R":"SD(403.5,",$P(SDREQTYPE,"|",1)="A":"SDEC(409.85,",1:""),1:"") "RTN","SDESCREATEAPPT",132,0) S ARY84FDA(409.84,"+1,",.23)=$G(ARY84("SDPATIENTSTATUS")) "RTN","SDESCREATEAPPT",133,0) S ARY84FDA(409.84,"+1,",100)=$G(ARY84("SDEAS")) "RTN","SDESCREATEAPPT",134,0) Q "RTN","SDESCREATEAPPT",135,0) ; "RTN","SDESCREATEAPPT",136,0) CLEANUP40984(ARY84,NEWIEN40984) ; "RTN","SDESCREATEAPPT",137,0) ; "RTN","SDESCREATEAPPT",138,0) ;file word processing field in NOTE (409.84,1) "RTN","SDESCREATEAPPT",139,0) K SDECMSG "RTN","SDESCREATEAPPT",140,0) I ARY84("SDNOTE")'="" N ARR D WP^SDECUTL(.ARR,ARY84("SDNOTE")) D WP^DIE(409.84,NEWIEN40984_",",1,"","ARR","SDECMSG") "RTN","SDESCREATEAPPT",141,0) ; "RTN","SDESCREATEAPPT",142,0) ;delete recall request if appointment made from recall "RTN","SDESCREATEAPPT",143,0) I $P(ARY84("SDREQTYPE"),"|",1)="R" D ; VSE-863 ;6/9/2021 "RTN","SDESCREATEAPPT",144,0) .N SDCOMM,SDRET,SDRIEN1,SDRRFTR "RTN","SDESCREATEAPPT",145,0) .S SDRIEN1=$P(ARY84("SDREQTYPE"),"|",2) "RTN","SDESCREATEAPPT",146,0) .S SDCOMM=$$GET1^DIQ(403.5,SDRIEN1,2.5) "RTN","SDESCREATEAPPT",147,0) .S SDRRFTR="APPT SCHEDULED" ; "7" "RTN","SDESCREATEAPPT",148,0) .D RECDSET^SDEC52A(.SDRET,SDRIEN1,SDRRFTR,SDCOMM) "RTN","SDESCREATEAPPT",149,0) ; "RTN","SDESCREATEAPPT",150,0) ;update appt request "RTN","SDESCREATEAPPT",151,0) I $P(ARY84("SDREQTYPE"),"|",1)="A" D "RTN","SDESCREATEAPPT",152,0) .D UPDATE^SDECAR2($P(ARY84("SDREQTYPE"),"|",2),ARY84("SDAPPTSTARTDTTM"),ARY84("CLINICIEN"),ARY84("SDSERVCONNPERC"),ARY84("SDSERVCONN"),,ARY84("SDPATIENTSTATUS"),ARY84("SDEAS")) "RTN","SDESCREATEAPPT",153,0) .I $G(ARY84("SDMRTC")),$G(ARY84("SDPARENT")) D AR433^SDECAR2(ARY84("SDPARENT"),NEWIEN40984_"~"_$P(ARY84("SDREQTYPE"),"|",2)) "RTN","SDESCREATEAPPT",154,0) .D:$G(ARY84("SDPARENT")) AR438^SDECAR2($P(ARY84("SDREQTYPE"),"|",2),ARY84("SDPARENT")) "RTN","SDESCREATEAPPT",155,0) ; "RTN","SDESCREATEAPPT",156,0) ;add entry to OUTPATIENT ENCOUNTER file (#409.68) ;alb/sat 672 "RTN","SDESCREATEAPPT",157,0) I $$NOW^XLFDT>ARY84("SDAPPTSTARTDTTM"),$$NEW^SDPCE(ARY84("SDAPPTSTARTDTTM")) D "RTN","SDESCREATEAPPT",158,0) .S ENCOUNTER=$$GETAPT^SDVSIT2(ARY84("DFN"),ARY84("SDAPPTSTARTDTTM"),ARY84("CLINICIEN")) "RTN","SDESCREATEAPPT",159,0) ; "RTN","SDESCREATEAPPT",160,0) Q "RTN","SDESCREATEAPPT2") 0^19^B20075592^n/a "RTN","SDESCREATEAPPT2",1,0) SDESCREATEAPPT2 ;ALB/BLB - VISTA SCHEDULING RPCS ;Apr 5, 2022 "RTN","SDESCREATEAPPT2",2,0) ;;5.3;Scheduling;**814**;Aug 13, 1993;Build 11 "RTN","SDESCREATEAPPT2",3,0) ;;Per VHA Directive 6402, this routine should not be modified "RTN","SDESCREATEAPPT2",4,0) ; "RTN","SDESCREATEAPPT2",5,0) Q "RTN","SDESCREATEAPPT2",6,0) ; "RTN","SDESCREATEAPPT2",7,0) ; appt in file 2. Called from wrapper level SDESCRTAPPTWRAP. See SDESCRTAPPTWRAP for required inputs. "RTN","SDESCREATEAPPT2",8,0) ; "RTN","SDESCREATEAPPT2",9,0) ; "RTN","SDESCREATEAPPT2",10,0) VALIDATE(ERRORS,ARY2) ; Validate "RTN","SDESCREATEAPPT2",11,0) ; patient DFN "RTN","SDESCREATEAPPT2",12,0) S ARY2("DFN")=$G(ARY2("DFN"),"") "RTN","SDESCREATEAPPT2",13,0) I ARY2("DFN")="" D ERRLOG^SDESJSON(.ERRORS,1) Q "RTN","SDESCREATEAPPT2",14,0) I ARY2("DFN")'="",'$D(^DPT(+ARY2("DFN"),0)) D ERRLOG^SDESJSON(.ERRORS,2) Q "RTN","SDESCREATEAPPT2",15,0) ; "RTN","SDESCREATEAPPT2",16,0) ; clinic IEN "RTN","SDESCREATEAPPT2",17,0) S ARY2("CLINICIEN")=$G(ARY2("CLINICIEN"),"") "RTN","SDESCREATEAPPT2",18,0) I ARY2("CLINICIEN")="" D ERRLOG^SDESJSON(.ERRORS,18) Q "RTN","SDESCREATEAPPT2",19,0) I '$D(^SC(+ARY2("CLINICIEN"),0)) D ERRLOG^SDESJSON(.ERRORS,19) Q "RTN","SDESCREATEAPPT2",20,0) I $$INACTIVE^SDEC32(+ARY2("CLINICIEN")) D ERRLOG^SDESJSON(.ERRORS,19) Q "RTN","SDESCREATEAPPT2",21,0) ; "RTN","SDESCREATEAPPT2",22,0) ; appointment Type "RTN","SDESCREATEAPPT2",23,0) S ARY2("SDAPPTYPE")=$G(ARY2("SDAPPTYPE"),"") "RTN","SDESCREATEAPPT2",24,0) I ARY2("SDAPPTYPE")="" D ERRLOG^SDESJSON(.ERRORS,60) Q "RTN","SDESCREATEAPPT2",25,0) I ARY2("SDAPPTYPE")'="",('$D(^SD(409.1,"B",ARY2("SDAPPTYPE")))) D ERRLOG^SDESJSON(.ERRORS,61) Q "RTN","SDESCREATEAPPT2",26,0) I ARY2("SDAPPTYPE")'="",($D(^SD(409.1,"B",ARY2("SDAPPTYPE")))) S ARY2("SDAPPTYPE")=$O(^SD(409.1,"B",ARY2("SDAPPTYPE"),0)) "RTN","SDESCREATEAPPT2",27,0) ; "RTN","SDESCREATEAPPT2",28,0) ; appointment date/time "RTN","SDESCREATEAPPT2",29,0) S ARY2("SDAPPTSTARTDTTM")=$G(ARY2("SDAPPTSTARTDTTM"),"") "RTN","SDESCREATEAPPT2",30,0) I ARY2("SDAPPTSTARTDTTM")="" D ERRLOG^SDESJSON(.ERRORS,76) Q "RTN","SDESCREATEAPPT2",31,0) S ARY2("SDAPPTSTARTDTTM")=$$ISOTFM^SDAMUTDT(ARY2("SDAPPTSTARTDTTM"),ARY2("CLINICIEN")) "RTN","SDESCREATEAPPT2",32,0) I ARY2("SDAPPTSTARTDTTM")=-1 S ARY2("SDAPPTSTARTDTTM")="" D ERRLOG^SDESJSON(.ERRORS,77) Q "RTN","SDESCREATEAPPT2",33,0) I ARY2("SDAPPTSTARTDTTM")
120)) D ERRLOG^SDESJSON(.ERRORS,116) Q "RTN","SDESCREATEAPPT44",36,0) ; "RTN","SDESCREATEAPPT44",37,0) ; appointment Reason "RTN","SDESCREATEAPPT44",38,0) S ARY44("SDAPPTREASON")=$G(ARY44("SDAPPTREASON"),"") "RTN","SDESCREATEAPPT44",39,0) S ARY44("SDAPPTREASON")=$TR($G(ARY44("SDAPPTREASON")),"^"," ") "RTN","SDESCREATEAPPT44",40,0) ; "RTN","SDESCREATEAPPT44",41,0) ; overbook "RTN","SDESCREATEAPPT44",42,0) S ARY44("SDOVERBOOK")=$G(ARY44("SDOVERBOOK"),"") "RTN","SDESCREATEAPPT44",43,0) I ARY44("SDOVERBOOK")'="" D "RTN","SDESCREATEAPPT44",44,0) . I ARY44("SDOVERBOOK")'=1,ARY44("SDOVERBOOK")'=0 D ERRLOG^SDESJSON(.ERRORS,112) Q "RTN","SDESCREATEAPPT44",45,0) ; "RTN","SDESCREATEAPPT44",46,0) ; patient Eligibility "RTN","SDESCREATEAPPT44",47,0) S ARY44("SDPATELIG")=$G(ARY44("SDPATELIG"),"") "RTN","SDESCREATEAPPT44",48,0) I ARY44("SDPATELIG")'="",'$D(^DIC(8,+ARY44("SDPATELIG"),0)) D ERRLOG^SDESJSON(.ERRORS,143) Q "RTN","SDESCREATEAPPT44",49,0) ; "RTN","SDESCREATEAPPT44",50,0) ; check for existing appointment in clinic for same patient/date/time "RTN","SDESCREATEAPPT44",51,0) S HAS44APPT=$$APPTIN44EXISTS(ARY44("DFN"),ARY44("CLINICIEN"),ARY44("SDAPPTSTARTDTTM")) "RTN","SDESCREATEAPPT44",52,0) I HAS44APPT D ERRLOG^SDESJSON(.ERRORS,175) Q "RTN","SDESCREATEAPPT44",53,0) ; "RTN","SDESCREATEAPPT44",54,0) Q "RTN","SDESCREATEAPPT44",55,0) APPTIN44EXISTS(DFN,CLINIC,DATE) ; "RTN","SDESCREATEAPPT44",56,0) N SUBIEN,FOUND "RTN","SDESCREATEAPPT44",57,0) S FOUND=0 "RTN","SDESCREATEAPPT44",58,0) S SUBIEN=0 F S SUBIEN=$O(^SC(CLINIC,"S",DATE,1,SUBIEN)) Q:'SUBIEN!($G(FOUND)=1) D "RTN","SDESCREATEAPPT44",59,0) .I $$GET1^DIQ(44.003,SUBIEN_","_DATE_","_CLINIC_",",310)="C" Q ;cancelled "RTN","SDESCREATEAPPT44",60,0) .I $$GET1^DIQ(44.003,SUBIEN_","_DATE_","_CLINIC_",",.01,"I")=DFN S FOUND=1 Q ; record exists "RTN","SDESCREATEAPPT44",61,0) I $G(FOUND)=1 Q 1 "RTN","SDESCREATEAPPT44",62,0) Q 0 "RTN","SDESCREATEAPPT44",63,0) ; "RTN","SDESCREATEAPPT44",64,0) CREATE(ARRAY44001FDA,ARRAY44003FDA,NEWIEN44001,IENS44,ARY44) ; "RTN","SDESCREATEAPPT44",65,0) ; "RTN","SDESCREATEAPPT44",66,0) ; only allow one entry in 44.001 for a single date "RTN","SDESCREATEAPPT44",67,0) I '$D(^SC($G(ARY44("CLINICIEN")),"S",$G(ARY44("SDAPPTSTARTDTTM")))) D "RTN","SDESCREATEAPPT44",68,0) .S NEWIEN44001(1)=ARY44("SDAPPTSTARTDTTM") "RTN","SDESCREATEAPPT44",69,0) .S ARRAY44001FDA(44.001,"+1,"_$G(ARY44("CLINICIEN"))_",",.01)=$G(ARY44("SDAPPTSTARTDTTM")) "RTN","SDESCREATEAPPT44",70,0) S IENS44(1)=ARY44("SDAPPTSTARTDTTM")_","_ARY44("CLINICIEN")_"," "RTN","SDESCREATEAPPT44",71,0) S ARRAY44003FDA(44.003,"+1,"_IENS44(1),.01)=$G(ARY44("DFN")) "RTN","SDESCREATEAPPT44",72,0) S ARRAY44003FDA(44.003,"+1,"_IENS44(1),1)=$G(ARY44("SDAPPTLENGTH")) "RTN","SDESCREATEAPPT44",73,0) S ARRAY44003FDA(44.003,"+1,"_IENS44(1),3)=$E($G(ARY44("SDAPPTREASON")),1,150) "RTN","SDESCREATEAPPT44",74,0) S ARRAY44003FDA(44.003,"+1,"_IENS44(1),30)=$G(ARY44("SDPATELIG")) "RTN","SDESCREATEAPPT44",75,0) S ARRAY44003FDA(44.003,"+1,"_IENS44(1),9)=$S(+ARY44("SDOVERBOOK"):"O",1:"") "RTN","SDESCREATEAPPT44",76,0) S ARRAY44003FDA(44.003,"+1,"_IENS44(1),7)=$G(DUZ) "RTN","SDESCREATEAPPT44",77,0) S ARRAY44003FDA(44.003,"+1,"_IENS44(1),8)=$G(DT) "RTN","SDESCREATEAPPT44",78,0) Q "RTN","SDESCREATEAPPT44",79,0) CLEANUP44(ARY44,NEWIEN44,SDREQTYPE) ; "RTN","SDESCREATEAPPT44",80,0) ;add consult link "RTN","SDESCREATEAPPT44",81,0) I $P(ARY44("SDREQTYPE"),"|",1)="C" D "RTN","SDESCREATEAPPT44",82,0) .N SDFDA "RTN","SDESCREATEAPPT44",83,0) .S SDFDA(44.003,NEWIEN44_","_ARY44("SDAPPTSTARTDTTM")_","_ARY44("CLINICIEN")_",",688)=$P(SDREQTYPE,"|",2) "RTN","SDESCREATEAPPT44",84,0) .D UPDATE^DIE("","SDFDA") K SDFDA "RTN","SDESCREATEAPPT44",85,0) ; "RTN","SDESCREATEAPPT44",86,0) ;make appt event #1 "RTN","SDESCREATEAPPT44",87,0) S SDDA=$$SCIEN^SDECU2($G(ARY44("DFN")),$G(ARY44("CLINICIEN")),$G(ARY44("SDAPPTSTARTDTTM"))) "RTN","SDESCREATEAPPT44",88,0) D MAKE^SDAMEVT($G(ARY44("DFN")),$G(ARY44("SDAPPTSTARTDTTM")),$G(ARY44("CLINICIEN")),SDDA,2) "RTN","SDESCREATEAPPT44",89,0) ;update clinic availability "RTN","SDESCREATEAPPT44",90,0) D AVUPDT^SDEC07C($G(ARY44("CLINICIEN")),$G(ARY44("SDAPPTSTARTDTTM")),$G(ARY44("SDAPPTLENGTH"))) "RTN","SDESCREATEAPPT44",91,0) Q "RTN","SDESCREATEAPPT44",92,0) ; "RTN","SDESCRTAPPTWRAP") 0^17^B47766702^n/a "RTN","SDESCRTAPPTWRAP",1,0) SDESCRTAPPTWRAP ;ALB/BLB - VISTA SCHEDULING RPCS ; Apr 4, 2022@10:30 "RTN","SDESCRTAPPTWRAP",2,0) ;;5.3;Scheduling;**814**;Aug 13, 1993;Build 11 "RTN","SDESCRTAPPTWRAP",3,0) ;;Per VHA Directive 6402, this routine should not be modified "RTN","SDESCRTAPPTWRAP",4,0) ;----------------- ----------------- ---------- "RTN","SDESCRTAPPTWRAP",5,0) ; "RTN","SDESCRTAPPTWRAP",6,0) ;(APPTARRAY(1)= APPT START TIME - (REQUIRED) - ISO FORMAT "RTN","SDESCRTAPPTWRAP",7,0) ;(APPTARRAY(2)= APPT END TIME - (REQUIRED) - ISO FORMAT "RTN","SDESCRTAPPTWRAP",8,0) ;(APPTARRAY(3)= DFN - (REQUIRED) - PATIENT IEN "RTN","SDESCRTAPPTWRAP",9,0) ;(APPTARRAY(4)= SDEC RESOURCE IEN (REQUIRED) "RTN","SDESCRTAPPTWRAP",10,0) ;(APPTARRAY(5)= WALKIN - (Y/N) "RTN","SDESCRTAPPTWRAP",11,0) ;(APPTARRAY(6)= DESIRED DATE/TIME - ISO FORMAT "RTN","SDESCRTAPPTWRAP",12,0) ;(APPTARRAY(7)= EXTERNAL ID - (FREE TEXT 1-50) "RTN","SDESCRTAPPTWRAP",13,0) ;(APPTARRAY(8)= SD REQUEST TYPE (REQUIRED) - REQTYPE|REQIEN "RTN","SDESCRTAPPTWRAP",14,0) ;(APPTARRAY(9)= PROVIDER IEN "RTN","SDESCRTAPPTWRAP",15,0) ;(APPTARRAY(10)= CLINIC IEN (REQUIRED) "RTN","SDESCRTAPPTWRAP",16,0) ;(APPTARRAY(11)= NOTE - FREE TEXT 1-150 "RTN","SDESCRTAPPTWRAP",17,0) ;(APPTARRAY(12)= APPT TYPE (REQUIRED) - POINTER FROM ^SD(809.1 "RTN","SDESCRTAPPTWRAP",18,0) ;(APPTARRAY(13)= PATIENT STATUS - (N/E) N:NEW E:ESTABLISHED "RTN","SDESCRTAPPTWRAP",19,0) ;(APPTARRAY(14)= APPT LENGTH (REQUIRED) - IN MINUTES (5-120) "RTN","SDESCRTAPPTWRAP",20,0) ;(APPTARRAY(15)= SERVICE CONNECTED - YES/NO "RTN","SDESCRTAPPTWRAP",21,0) ;(APPTARRAY(16)= SERVICE CONNECTED PERCENTAGE - 0-100 "RTN","SDESCRTAPPTWRAP",22,0) ;(APPTARRAY(17)= MRTC (TRUE/FALSE) "RTN","SDESCRTAPPTWRAP",23,0) ;(APPTARRAY(18)= PARENT REQUEST (APPT REQUEST IEN) "RTN","SDESCRTAPPTWRAP",24,0) ;(APPTARRAY(19)= EAS TRACKING NUMBER "RTN","SDESCRTAPPTWRAP",25,0) ;(APPTARRAY(20)) APPT REASON - FREE TEXT (1-150) "RTN","SDESCRTAPPTWRAP",26,0) ;(APPTARRAY(21)= PATIENT ELIGIBILITY IEN - POINTER TO ^DIC(8 "RTN","SDESCRTAPPTWRAP",27,0) ;(APPTARRAY(22)= OVERBOOK (0 for no, 1 for yes) "RTN","SDESCRTAPPTWRAP",28,0) ;(APPTARRAY(23)= LAB DATE/TIME - ISO FORMAT "RTN","SDESCRTAPPTWRAP",29,0) ;(APPTARRAY(24)= XRAY DATE/TIME - ISO FORMAT "RTN","SDESCRTAPPTWRAP",30,0) ;(APPTARRAY(25)= EKG DATE/TIME - ISO FORMAT "RTN","SDESCRTAPPTWRAP",31,0) ;(APPTARRAY(26)= PURPOSE (REQUIRED)- '1' FOR C&P; '2' FOR 10-10; '3' FOR SCHEDULED VISIT; '4' FOR UNSCHED. VISIT; "RTN","SDESCRTAPPTWRAP",32,0) ;(APPTARRAY(27)= COLLATERAL - 1 FOR YES "RTN","SDESCRTAPPTWRAP",33,0) ;(APPTARRAY(28)= SCHEDULE REQUEST TYPE (REQUIRED) - "RTN","SDESCRTAPPTWRAP",34,0) ; 'N' FOR 'NEXT AVAILABLE' APPT.; "RTN","SDESCRTAPPTWRAP",35,0) ; 'C' FOR OTHER THAN 'NEXT AVA.' (CLINICIAN REQ.) "RTN","SDESCRTAPPTWRAP",36,0) ; 'P' FOR OTHER THAN 'NEXT AVA.' (PATIENT REQ.); "RTN","SDESCRTAPPTWRAP",37,0) ; 'W' FOR WALKIN APPT.; "RTN","SDESCRTAPPTWRAP",38,0) ; 'M' FOR MULTIPLE APPT. BOOKING; "RTN","SDESCRTAPPTWRAP",39,0) ; 'A' FOR AUTO REBOOK; "RTN","SDESCRTAPPTWRAP",40,0) ; 'O' FOR OTHER THAN 'NEXT AVA.' APPT.; "RTN","SDESCRTAPPTWRAP",41,0) ;(APPTARRAY(29)= NEXT AVAILABLE APPT (REQUIRED) - "RTN","SDESCRTAPPTWRAP",42,0) ; '0' FOR NOT INDICATED TO BE A 'NEXT AVA.' APPT. "RTN","SDESCRTAPPTWRAP",43,0) ; 1' FOR 'NEXT AVA.' APPT. INDICATED BY USER; "RTN","SDESCRTAPPTWRAP",44,0) ; '2' FOR 'NEXT AVA.' APPT. INDICATED BY CALCULATION; "RTN","SDESCRTAPPTWRAP",45,0) ; '3' FOR 'NEXT AVA.' APPT. INDICATED BY USER & C "RTN","SDESCRTAPPTWRAP",46,0) ;(APPTARRAY(30)= FOLLOWUP - 1 FOR YES 0 FOR NO "RTN","SDESCRTAPPTWRAP",47,0) Q "RTN","SDESCRTAPPTWRAP",48,0) CREATEAPPTS(JSONRETURN,APPTARRAY) ; "RTN","SDESCRTAPPTWRAP",49,0) N RETURN,ERRORS,HAS40984ERRORS,HAS44ERRORS,HAS2ERRORS,FILENUMBER,ARY84,ARY44,ARY2,IS40984CREATED,IS44CREATED,IS2CREATED,ARRAYDELETE "RTN","SDESCRTAPPTWRAP",50,0) N RETURNIEN40984,RETURNIEN44 "RTN","SDESCRTAPPTWRAP",51,0) ; "RTN","SDESCRTAPPTWRAP",52,0) D POPULATEARRAYS(.APPTARRAY,.ARY84,.ARY44,.ARY2) "RTN","SDESCRTAPPTWRAP",53,0) ; "RTN","SDESCRTAPPTWRAP",54,0) ; validate parameters "RTN","SDESCRTAPPTWRAP",55,0) S HAS40984ERRORS=$$VALIDATE40984(.ERRORS,.ARY84) "RTN","SDESCRTAPPTWRAP",56,0) I HAS40984ERRORS M RETURN=ERRORS D BUILDJSON(.JSONRETURN,.RETURN) Q ;has errors, quit "RTN","SDESCRTAPPTWRAP",57,0) ; "RTN","SDESCRTAPPTWRAP",58,0) S HAS44ERRORS=$$VALIDATE44(.ERRORS,.ARY44) "RTN","SDESCRTAPPTWRAP",59,0) I HAS44ERRORS M RETURN=ERRORS D BUILDJSON(.JSONRETURN,.RETURN) Q "RTN","SDESCRTAPPTWRAP",60,0) ; "RTN","SDESCRTAPPTWRAP",61,0) S HAS2ERRORS=$$VALIDATE2(.ERRORS,.ARY2) "RTN","SDESCRTAPPTWRAP",62,0) I HAS2ERRORS M RETURN=ERRORS D BUILDJSON(.JSONRETURN,.RETURN) Q "RTN","SDESCRTAPPTWRAP",63,0) ; "RTN","SDESCRTAPPTWRAP",64,0) ; create entries in 409.84, 44, and 2 "RTN","SDESCRTAPPTWRAP",65,0) S IS40984CREATED=$$CREATE40984(.ARY84,.ERRORS) "RTN","SDESCRTAPPTWRAP",66,0) I 'IS40984CREATED M RETURN=ERRORS D BUILDJSON(.JSONRETURN,.RETURN) Q "RTN","SDESCRTAPPTWRAP",67,0) ; "RTN","SDESCRTAPPTWRAP",68,0) S IS44CREATED=$$CREATE44(.ARY44,.ERRORS) "RTN","SDESCRTAPPTWRAP",69,0) I 'IS44CREATED M RETURN=ERRORS D BUILDJSON(.JSONRETURN,.RETURN) Q "RTN","SDESCRTAPPTWRAP",70,0) ; "RTN","SDESCRTAPPTWRAP",71,0) S IS2CREATED=$$CREATE2(.ARY2,.ERRORS) "RTN","SDESCRTAPPTWRAP",72,0) I 'IS2CREATED M RETURN=ERRORS D BUILDJSON(.JSONRETURN,.RETURN) Q "RTN","SDESCRTAPPTWRAP",73,0) I '$D(RETURN) D "RTN","SDESCRTAPPTWRAP",74,0) .D CLEANUP40984^SDESCREATEAPPT(.ARY84,RETURNIEN40984) "RTN","SDESCRTAPPTWRAP",75,0) .D CLEANUP44^SDESCREATEAPPT44(.ARY44,RETURNIEN44,ARY84("SDREQTYPE")) "RTN","SDESCRTAPPTWRAP",76,0) .S RETURN("Appointment","IEN")=RETURNIEN40984 "RTN","SDESCRTAPPTWRAP",77,0) ; "RTN","SDESCRTAPPTWRAP",78,0) D BUILDJSON(.JSONRETURN,.RETURN) "RTN","SDESCRTAPPTWRAP",79,0) ; "RTN","SDESCRTAPPTWRAP",80,0) Q "RTN","SDESCRTAPPTWRAP",81,0) ; "RTN","SDESCRTAPPTWRAP",82,0) VALIDATE40984(ERRORS,ARY84) ; "RTN","SDESCRTAPPTWRAP",83,0) N ERRORFLAG "RTN","SDESCRTAPPTWRAP",84,0) I '$D(ARY84) S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,169) Q $D(ERRORFLAG) "RTN","SDESCRTAPPTWRAP",85,0) D VALIDATE^SDESCREATEAPPT(.ERRORS,.ARY84) "RTN","SDESCRTAPPTWRAP",86,0) I $D(ERRORS) S ERRORFLAG=1 "RTN","SDESCRTAPPTWRAP",87,0) Q $D(ERRORFLAG) "RTN","SDESCRTAPPTWRAP",88,0) ; "RTN","SDESCRTAPPTWRAP",89,0) VALIDATE44(ERRORS,ARY44) ; "RTN","SDESCRTAPPTWRAP",90,0) N ERRORFLAG "RTN","SDESCRTAPPTWRAP",91,0) I '$D(ARY44) S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,170) Q $D(ERRORFLAG) "RTN","SDESCRTAPPTWRAP",92,0) D VALIDATE^SDESCREATEAPPT44(.ERRORS,.ARY44) "RTN","SDESCRTAPPTWRAP",93,0) I $D(ERRORS) S ERRORFLAG=1 "RTN","SDESCRTAPPTWRAP",94,0) Q $D(ERRORFLAG) "RTN","SDESCRTAPPTWRAP",95,0) ; "RTN","SDESCRTAPPTWRAP",96,0) VALIDATE2(ERRORS,ARY2) ; "RTN","SDESCRTAPPTWRAP",97,0) N ERRORFLAG "RTN","SDESCRTAPPTWRAP",98,0) I '$D(ARY2) S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,171) Q $D(ERRORFLAG) "RTN","SDESCRTAPPTWRAP",99,0) D VALIDATE^SDESCREATEAPPT2(.ERRORS,.ARY2) "RTN","SDESCRTAPPTWRAP",100,0) I $D(ERRORS) S ERRORFLAG=1 "RTN","SDESCRTAPPTWRAP",101,0) Q $D(ERRORFLAG) "RTN","SDESCRTAPPTWRAP",102,0) ; "RTN","SDESCRTAPPTWRAP",103,0) CREATE40984(ARY84,ERRORS) ; "RTN","SDESCRTAPPTWRAP",104,0) N ARY84FDA,SDERROR,NEWIEN40984,SDERROR "RTN","SDESCRTAPPTWRAP",105,0) D CREATE^SDESCREATEAPPT(.ARY84FDA,.ARY84) "RTN","SDESCRTAPPTWRAP",106,0) D UPDATE^DIE(,"ARY84FDA","NEWIEN40984","SDERROR") K ARY84FDA "RTN","SDESCRTAPPTWRAP",107,0) I $D(SDERROR) D ERRLOG^SDESJSON(.ERRORS,173) Q 0 ;no records to delete "RTN","SDESCRTAPPTWRAP",108,0) S ARRAYDELETE(409.84)=$G(NEWIEN40984(1))_",",RETURNIEN40984=$G(NEWIEN40984(1)) "RTN","SDESCRTAPPTWRAP",109,0) Q 1 "RTN","SDESCRTAPPTWRAP",110,0) ; "RTN","SDESCRTAPPTWRAP",111,0) CREATE44(ARY44,ERRORS) ; "RTN","SDESCRTAPPTWRAP",112,0) N ARRAY44001FDA,ARRAY44003FDA,NEWIEN44001,NEWIEN44003,SDERR1,SDERR2,IENS44 "RTN","SDESCRTAPPTWRAP",113,0) D CREATE^SDESCREATEAPPT44(.ARRAY44001FDA,.ARRAY44003FDA,.NEWIEN44001,.IENS44,.ARY44) "RTN","SDESCRTAPPTWRAP",114,0) I $D(ARRAY44001FDA) D "RTN","SDESCRTAPPTWRAP",115,0) .D UPDATE^DIE(,"ARRAY44001FDA","NEWIEN44001","SDERR1") K FDA44001FDA "RTN","SDESCRTAPPTWRAP",116,0) I $D(SDERR1) D DELETERECORD(.ARRAYDELETE),ERRLOG^SDESJSON(.ERRORS,173) Q 0 ;delete all records in arraydelete "RTN","SDESCRTAPPTWRAP",117,0) ;if filed, set arraydelete for potential deletion "RTN","SDESCRTAPPTWRAP",118,0) S ARRAYDELETE(44.001)=$G(IENS44(1)) "RTN","SDESCRTAPPTWRAP",119,0) ; "RTN","SDESCRTAPPTWRAP",120,0) D UPDATE^DIE(,"ARRAY44003FDA","NEWIEN44003","SDERR2") K FDA44003FDA "RTN","SDESCRTAPPTWRAP",121,0) I $D(SDERR2) D DELETERECORD(.ARRAYDELETE),ERRLOG^SDESJSON(.ERRORS,173) Q 0 ;delete all records in arraydelete "RTN","SDESCRTAPPTWRAP",122,0) ;if filed, set arraydelete for potential deletion "RTN","SDESCRTAPPTWRAP",123,0) S ARRAYDELETE(44.003)=$G(IENS44(1))_$G(NEWIEN44003(1))_",",RETURNIEN44=$G(NEWIEN44003(1)) "RTN","SDESCRTAPPTWRAP",124,0) Q 1 "RTN","SDESCRTAPPTWRAP",125,0) ; "RTN","SDESCRTAPPTWRAP",126,0) CREATE2(ARY2,ERRORS) ; "RTN","SDESCRTAPPTWRAP",127,0) N ARRAY2FDA,NEWIEN2,SDERR "RTN","SDESCRTAPPTWRAP",128,0) D CREATE^SDESCREATEAPPT2(.ARRAY2FDA,.NEWIEN2,.ARY2) "RTN","SDESCRTAPPTWRAP",129,0) D UPDATE^DIE("","ARRAY2FDA","NEWIEN2","SDERR") K ARRAY2FDA "RTN","SDESCRTAPPTWRAP",130,0) I $D(SDERR) D DELETERECORD(.ARRAYDELETE),ERRLOG^SDESJSON(.ERRORS,173) Q 0 ;delete all records in arraydelete "RTN","SDESCRTAPPTWRAP",131,0) Q 1 "RTN","SDESCRTAPPTWRAP",132,0) ; "RTN","SDESCRTAPPTWRAP",133,0) DELETERECORD(ARRAYDELETE) ; "RTN","SDESCRTAPPTWRAP",134,0) N DELETEFDA,FILENUMBER,IENS,ERR "RTN","SDESCRTAPPTWRAP",135,0) S FILENUMBER=0 "RTN","SDESCRTAPPTWRAP",136,0) F S FILENUMBER=$O(ARRAYDELETE(FILENUMBER)) Q:'FILENUMBER D "RTN","SDESCRTAPPTWRAP",137,0) .S IENS=ARRAYDELETE(FILENUMBER) "RTN","SDESCRTAPPTWRAP",138,0) .S DELETEFDA(FILENUMBER,IENS,.01)="@" "RTN","SDESCRTAPPTWRAP",139,0) .D FILE^DIE(,"DELETEFDA","ERR") K DELETEFDA "RTN","SDESCRTAPPTWRAP",140,0) Q "RTN","SDESCRTAPPTWRAP",141,0) ; "RTN","SDESCRTAPPTWRAP",142,0) BUILDJSON(JSONRETURN,RETURN) ; "RTN","SDESCRTAPPTWRAP",143,0) N JSONERROR "RTN","SDESCRTAPPTWRAP",144,0) D ENCODE^XLFJSON("RETURN","JSONRETURN","JSONERR") "RTN","SDESCRTAPPTWRAP",145,0) Q "RTN","SDESCRTAPPTWRAP",146,0) ; "RTN","SDESCRTAPPTWRAP",147,0) POPULATEARRAYS(APPTARRAY,ARY84,ARY44,ARY2) ; "RTN","SDESCRTAPPTWRAP",148,0) S ARY84("SDAPPTSTARTDTTM")=$G(APPTARRAY(1)) "RTN","SDESCRTAPPTWRAP",149,0) S ARY84("SDAPPTENDDTTM")=$G(APPTARRAY(2)) "RTN","SDESCRTAPPTWRAP",150,0) S ARY84("DFN")=$G(APPTARRAY(3)) "RTN","SDESCRTAPPTWRAP",151,0) S ARY84("SDRESOURCE")=$G(APPTARRAY(4)) "RTN","SDESCRTAPPTWRAP",152,0) S ARY84("WALKIN")=$G(APPTARRAY(5)) "RTN","SDESCRTAPPTWRAP",153,0) S ARY84("SDESIREDTTM")=$G(APPTARRAY(6)) "RTN","SDESCRTAPPTWRAP",154,0) S ARY84("SDEXTERNALID")=$G(APPTARRAY(7)) "RTN","SDESCRTAPPTWRAP",155,0) S ARY84("SDREQTYPE")=$G(APPTARRAY(8)) "RTN","SDESCRTAPPTWRAP",156,0) S ARY84("SDPROVIEN")=$G(APPTARRAY(9)) "RTN","SDESCRTAPPTWRAP",157,0) S ARY84("CLINICIEN")=$G(APPTARRAY(10)) "RTN","SDESCRTAPPTWRAP",158,0) S ARY84("SDNOTE")=$G(APPTARRAY(11)) "RTN","SDESCRTAPPTWRAP",159,0) S ARY84("SDAPPTYPE")=$G(APPTARRAY(12)) "RTN","SDESCRTAPPTWRAP",160,0) S ARY84("SDPATIENTSTATUS")=$G(APPTARRAY(13)) "RTN","SDESCRTAPPTWRAP",161,0) S ARY84("SDAPPTLENGTH")=$G(APPTARRAY(14)) "RTN","SDESCRTAPPTWRAP",162,0) S ARY84("SDSERVCONN")=$G(APPTARRAY(15)) "RTN","SDESCRTAPPTWRAP",163,0) S ARY84("SDSERVCONNPERC")=$G(APPTARRAY(16)) "RTN","SDESCRTAPPTWRAP",164,0) S ARY84("SDMRTC")=$G(APPTARRAY(17)) "RTN","SDESCRTAPPTWRAP",165,0) S ARY84("SDPARENT")=$G(APPTARRAY(18)) "RTN","SDESCRTAPPTWRAP",166,0) S ARY84("SDEAS")=$G(APPTARRAY(19)) "RTN","SDESCRTAPPTWRAP",167,0) ; "RTN","SDESCRTAPPTWRAP",168,0) S ARY44("CLINICIEN")=$G(APPTARRAY(10)) "RTN","SDESCRTAPPTWRAP",169,0) S ARY44("DFN")=$G(APPTARRAY(3)) "RTN","SDESCRTAPPTWRAP",170,0) S ARY44("SDAPPTSTARTDTTM")=$G(APPTARRAY(1)) "RTN","SDESCRTAPPTWRAP",171,0) S ARY44("SDAPPTLENGTH")=$G(APPTARRAY(14)) "RTN","SDESCRTAPPTWRAP",172,0) S ARY44("SDAPPTREASON")=$G(APPTARRAY(20)) "RTN","SDESCRTAPPTWRAP",173,0) S ARY44("SDPATELIG")=$G(APPTARRAY(21)) "RTN","SDESCRTAPPTWRAP",174,0) S ARY44("SDOVERBOOK")=$G(APPTARRAY(22)) "RTN","SDESCRTAPPTWRAP",175,0) S ARY44("SDREQTYPE")=$G(APPTARRAY(8)) "RTN","SDESCRTAPPTWRAP",176,0) ; "RTN","SDESCRTAPPTWRAP",177,0) S ARY2("DFN")=$G(APPTARRAY(3)) "RTN","SDESCRTAPPTWRAP",178,0) S ARY2("CLINICIEN")=$G(APPTARRAY(10)) "RTN","SDESCRTAPPTWRAP",179,0) S ARY2("SDAPPTSTARTDTTM")=$G(APPTARRAY(1)) "RTN","SDESCRTAPPTWRAP",180,0) S ARY2("SDLABDTTM")=$G(APPTARRAY(23)) "RTN","SDESCRTAPPTWRAP",181,0) S ARY2("SDXRAYDTTM")=$G(APPTARRAY(24)) "RTN","SDESCRTAPPTWRAP",182,0) S ARY2("SDEKGDTTM")=$G(APPTARRAY(25)) "RTN","SDESCRTAPPTWRAP",183,0) S ARY2("SDPURPOSE")=$G(APPTARRAY(26)) "RTN","SDESCRTAPPTWRAP",184,0) S ARY2("SDAPPTYPE")=$G(APPTARRAY(12)) "RTN","SDESCRTAPPTWRAP",185,0) S ARY2("SDCOLLATERAL")=$G(APPTARRAY(27)) "RTN","SDESCRTAPPTWRAP",186,0) S ARY2("SDSCHREQTYPE")=$G(APPTARRAY(28)) "RTN","SDESCRTAPPTWRAP",187,0) S ARY2("SDNXTAVAAPPT")=$G(APPTARRAY(29)) "RTN","SDESCRTAPPTWRAP",188,0) S ARY2("SDFOLLOWUP")=$G(APPTARRAY(30)) "RTN","SDESCRTAPPTWRAP",189,0) Q "RTN","SDESCRTAPPTWRAP",190,0) ; "RTN","SDESGETAPPTWRAP") 0^11^B81712709^n/a "RTN","SDESGETAPPTWRAP",1,0) SDESGETAPPTWRAP ;ALB/RRM - RPC WRAPPER FOR VIEWING AN APPOINTMENT ;APR 12, 2022@13:47 "RTN","SDESGETAPPTWRAP",2,0) ;;5.3;Scheduling;**814**;Aug 13, 1993;Build 11 "RTN","SDESGETAPPTWRAP",3,0) ;;Per VHA Directive 6402, this routine should not be modified "RTN","SDESGETAPPTWRAP",4,0) ; "RTN","SDESGETAPPTWRAP",5,0) ; "RTN","SDESGETAPPTWRAP",6,0) Q ;No Direct Call "RTN","SDESGETAPPTWRAP",7,0) ; "RTN","SDESGETAPPTWRAP",8,0) ; The parameter list for this RPC must be kept in sync. "RTN","SDESGETAPPTWRAP",9,0) ; If you need to add or remove a parameter, ensure that the Remote Procedure File #8994 definition is also updated. "RTN","SDESGETAPPTWRAP",10,0) ; "RTN","SDESGETAPPTWRAP",11,0) ;This is the entry point to retrieve appointments from (not in particular order): "RTN","SDESGETAPPTWRAP",12,0) ; - HOSPITAL LOCATION File #44 "RTN","SDESGETAPPTWRAP",13,0) ; - PATIENT File #2, and "RTN","SDESGETAPPTWRAP",14,0) ; - SDEC APPOINTMENT File #409.84 "RTN","SDESGETAPPTWRAP",15,0) ; "RTN","SDESGETAPPTWRAP",16,0) ; Called from the following RPC: "RTN","SDESGETAPPTWRAP",17,0) ; - SDES GET APPTS BY CLINIC #44 "RTN","SDESGETAPPTWRAP",18,0) ; - SDES GET APPTS BY DFN #2 "RTN","SDESGETAPPTWRAP",19,0) GETAPPTS(RETURNJSON,SDPOINTERIEN,SDBEGDATE,SDENDDATE) ; "RTN","SDESGETAPPTWRAP",20,0) ; "RTN","SDESGETAPPTWRAP",21,0) ; Input: "RTN","SDESGETAPPTWRAP",22,0) ; SDPOINTERIEN [Required] = This can be a patient's DFN from PATIENT File #2 or the Internal Entry Number (IEN) from HOSPITAL LOCATION FILE #44. "RTN","SDESGETAPPTWRAP",23,0) ; SDBEGDATE [Required] = The beginning date/time in ISO8601 Time Format for the search. "RTN","SDESGETAPPTWRAP",24,0) ; SDENDDATE [Required] = The ending date/time in ISO8601 Time Format for the search. "RTN","SDESGETAPPTWRAP",25,0) ; "RTN","SDESGETAPPTWRAP",26,0) ; Output: "RTN","SDESGETAPPTWRAP",27,0) ; RETURNJSON = Returns fields from the (not in particular order) HOSPITAL LOCATION File #44, PATIENT File #2, and SDEC APPOINTMENT File #409.84 "RTN","SDESGETAPPTWRAP",28,0) ; in JSON format. JSON Errors will be returned for any invalid/missing parameters. "RTN","SDESGETAPPTWRAP",29,0) ; "RTN","SDESGETAPPTWRAP",30,0) N ERRORS,RETURNERROR ;temp data storage for input validation error "RTN","SDESGETAPPTWRAP",31,0) N SDAPPT40984 ;temp data storage for File #409.84 "RTN","SDESGETAPPTWRAP",32,0) N SDAPPT44 ;temp data storage for File #44 "RTN","SDESGETAPPTWRAP",33,0) N SDAPPTMULT2 ;temp data storage for Appointment Multiple File #2 "RTN","SDESGETAPPTWRAP",34,0) N SDALLAPPTARY ;temp data storage for all records found in the HOSPITAL LOCATION File #44, PATIENT File #2, and SDEC APPOINTMENT File #409.84 "RTN","SDESGETAPPTWRAP",35,0) N SDDFN,SDCLINICIEN,HASDFNERRORS,HASCLINIENERRORS,HASBEGDATEERRORS,HASENDDATEERRORS "RTN","SDESGETAPPTWRAP",36,0) ; "RTN","SDESGETAPPTWRAP",37,0) ;NOTE: Ensure that before calling this routine the SDVIEWAPPTBY variable is set to either 0 OR 1 "RTN","SDESGETAPPTWRAP",38,0) ; 0 - View Appointment using DFN "RTN","SDESGETAPPTWRAP",39,0) ; 1 - View Appointment using CLINIC IEN "RTN","SDESGETAPPTWRAP",40,0) ; "RTN","SDESGETAPPTWRAP",41,0) S ERRORFLAG=0 "RTN","SDESGETAPPTWRAP",42,0) ;Input parameters validation begins here "RTN","SDESGETAPPTWRAP",43,0) I $G(SDVIEWAPPTBY)=0 D ;DFN input parameter validation "RTN","SDESGETAPPTWRAP",44,0) . S SDDFN=SDPOINTERIEN "RTN","SDESGETAPPTWRAP",45,0) . S HASDFNERRORS=$$VALIDATEPTDFN(.ERRORS,SDDFN) "RTN","SDESGETAPPTWRAP",46,0) . I HASDFNERRORS M RETURNERROR=ERRORS "RTN","SDESGETAPPTWRAP",47,0) ; "RTN","SDESGETAPPTWRAP",48,0) I $G(SDVIEWAPPTBY)=1 D ;CLINIC IEN input parameter validation "RTN","SDESGETAPPTWRAP",49,0) . S SDCLINICIEN=SDPOINTERIEN "RTN","SDESGETAPPTWRAP",50,0) . S HASCLINIENERRORS=$$VALIDATECLINIC(.ERRORS,SDCLINICIEN) "RTN","SDESGETAPPTWRAP",51,0) . I HASCLINIENERRORS M RETURNERROR=ERRORS "RTN","SDESGETAPPTWRAP",52,0) ; "RTN","SDESGETAPPTWRAP",53,0) ;convert beginning and ending date time to Fileman Format "RTN","SDESGETAPPTWRAP",54,0) S:$G(SDBEGDATE)'="" SDBEGDATE=$$ISOTFM^SDAMUTDT(SDBEGDATE) "RTN","SDESGETAPPTWRAP",55,0) S:$G(SDENDDATE)'="" SDENDDATE=$$ISOTFM^SDAMUTDT(SDENDDATE) "RTN","SDESGETAPPTWRAP",56,0) ; "RTN","SDESGETAPPTWRAP",57,0) S HASBEGDATEERRORS=$$VALIDATEBEGDATE(.ERRORS,SDBEGDATE) ;SDBEGDATE input parameter validation "RTN","SDESGETAPPTWRAP",58,0) I HASBEGDATEERRORS M RETURNERROR=ERRORS "RTN","SDESGETAPPTWRAP",59,0) ; "RTN","SDESGETAPPTWRAP",60,0) S HASENDDATEERRORS=$$VALIDATEENDDATE(.ERRORS,SDENDDATE) ;SDENDDATE input parameter validation "RTN","SDESGETAPPTWRAP",61,0) I HASENDDATEERRORS M RETURNERROR=ERRORS "RTN","SDESGETAPPTWRAP",62,0) ;Input parameters validation ends here "RTN","SDESGETAPPTWRAP",63,0) ; "RTN","SDESGETAPPTWRAP",64,0) I $O(RETURNERROR("Error",""))'="" D BUILDJSON(.RETURNERROR,.RETURNJSON) Q ;do not continue processing if errors are detected "RTN","SDESGETAPPTWRAP",65,0) ; "RTN","SDESGETAPPTWRAP",66,0) K RETURNJSON,SDAPPT40984,SDAPPT44,SDAPPTMULT2 ;always clear returned data to ensure a new array of data are returned "RTN","SDESGETAPPTWRAP",67,0) ; "RTN","SDESGETAPPTWRAP",68,0) I $G(SDVIEWAPPTBY)=0 D GETAPPTBYDFN(SDDFN,SDBEGDATE,SDENDDATE) ;view appointment using DFN of the patient "RTN","SDESGETAPPTWRAP",69,0) I $G(SDVIEWAPPTBY)=1 D GETAPPTBYCLIN(SDCLINICIEN,SDBEGDATE,SDENDDATE) ;view appointment using Clinic IEN "RTN","SDESGETAPPTWRAP",70,0) ; "RTN","SDESGETAPPTWRAP",71,0) ;Merge the three retrieved appointments into one big array "RTN","SDESGETAPPTWRAP",72,0) D MERGEALLAPPT(.SDALLAPPTARY,.SDAPPT40984,.SDAPPT44,.SDAPPTMULT2) "RTN","SDESGETAPPTWRAP",73,0) ; "RTN","SDESGETAPPTWRAP",74,0) D BUILDJSON(.SDALLAPPTARY,.RETURNJSON) "RTN","SDESGETAPPTWRAP",75,0) D CLEANUP "RTN","SDESGETAPPTWRAP",76,0) Q "RTN","SDESGETAPPTWRAP",77,0) ; "RTN","SDESGETAPPTWRAP",78,0) VALIDATEPTDFN(ERRORS,SDDFN) ;Validate patient DFN "RTN","SDESGETAPPTWRAP",79,0) N ERRORFLAG "RTN","SDESGETAPPTWRAP",80,0) S ERRORFLAG=$$VALIDATEPTDFN^SDESGETPATAPPT(.ERRORS,SDDFN) "RTN","SDESGETAPPTWRAP",81,0) Q ERRORFLAG "RTN","SDESGETAPPTWRAP",82,0) ; "RTN","SDESGETAPPTWRAP",83,0) VALIDATECLINIC(ERRORS,SDCLINICIEN) ;Validate Clinic "RTN","SDESGETAPPTWRAP",84,0) N ERRORFLAG "RTN","SDESGETAPPTWRAP",85,0) S ERRORFLAG=$$VALIDATECLINIC^SDESGETPATAPPT(.ERRORS,SDCLINICIEN) "RTN","SDESGETAPPTWRAP",86,0) Q ERRORFLAG "RTN","SDESGETAPPTWRAP",87,0) ; "RTN","SDESGETAPPTWRAP",88,0) VALIDATEBEGDATE(ERRORS,SDBEGDATE) ;Validate Beginning Date "RTN","SDESGETAPPTWRAP",89,0) N ERRORFLAG "RTN","SDESGETAPPTWRAP",90,0) I $G(SDBEGDATE)="" D ERRLOG^SDESJSON(.ERRORS,25) S ERRORFLAG=1 Q ERRORFLAG "RTN","SDESGETAPPTWRAP",91,0) S ERRORFLAG=$$VALIDATEBEGDT^SDESPRINTPATAPPT(.ERRORS,SDBEGDATE) "RTN","SDESGETAPPTWRAP",92,0) Q ERRORFLAG "RTN","SDESGETAPPTWRAP",93,0) ; "RTN","SDESGETAPPTWRAP",94,0) VALIDATEENDDATE(ERRORS,SDENDDATE) ;Validate ENding Date "RTN","SDESGETAPPTWRAP",95,0) N ERRORFLAG "RTN","SDESGETAPPTWRAP",96,0) I SDENDDATE="" D ERRLOG^SDESJSON(.ERRORS,26) S ERRORFLAG=1 Q ERRORFLAG "RTN","SDESGETAPPTWRAP",97,0) S ERRORFLAG=$$VALIDATEENDDT^SDESPRINTPATAPPT(.ERRORS,SDENDDATE) "RTN","SDESGETAPPTWRAP",98,0) Q ERRORFLAG "RTN","SDESGETAPPTWRAP",99,0) ; "RTN","SDESGETAPPTWRAP",100,0) GETAPPTBYDFN(DFN,SDBEG,SDEND) ;View Appointment using DFN of the patient "RTN","SDESGETAPPTWRAP",101,0) N SDCLINICARY "RTN","SDESGETAPPTWRAP",102,0) D GETAPPT40984(DFN,SDBEG,SDEND) ;retrieves appointment from File #409.84 "RTN","SDESGETAPPTWRAP",103,0) ;SDCLINICARY is set while retrieving the appointments from File #409.84 in GETAPPT40984 line tag "RTN","SDESGETAPPTWRAP",104,0) D LOOPCLINICARY(.SDCLINICARY,SDBEG,SDEND) ;retrieves appointment from File #44 "RTN","SDESGETAPPTWRAP",105,0) D GETAPPT2(DFN,SDBEG,SDEND) ;retrieves appointment from Appointment Multiple Patient File #2 "RTN","SDESGETAPPTWRAP",106,0) Q "RTN","SDESGETAPPTWRAP",107,0) ; "RTN","SDESGETAPPTWRAP",108,0) GETAPPTBYCLIN(SDCLINICIEN,SDBEGDATE,SDENDDATE) ;View Appointment using Clinic IEN "RTN","SDESGETAPPTWRAP",109,0) N PATDFNARY "RTN","SDESGETAPPTWRAP",110,0) D GETAPPT44(SDCLINICIEN,SDBEGDATE,SDENDDATE) ;Retrieves appointments in File #44 "RTN","SDESGETAPPTWRAP",111,0) ;PATDFNARY array is created while retrieving appointments from File #44 in GETAPPT44 line tag "RTN","SDESGETAPPTWRAP",112,0) ;PATDFNARY will be use to retrieve appointments from Appointment Multiple PATIENT File #2 and File #409.84 "RTN","SDESGETAPPTWRAP",113,0) I $D(PATDFNARY) D "RTN","SDESGETAPPTWRAP",114,0) . S DFN="" F S DFN=$O(PATDFNARY(DFN)) Q:DFN="" D "RTN","SDESGETAPPTWRAP",115,0) . . D GETAPPT40984(DFN,SDBEGDATE,SDENDDATE) ;retrieves appointment from File #409.84 "RTN","SDESGETAPPTWRAP",116,0) . . D GETAPPT2(DFN,SDBEGDATE,SDENDDATE) ;retrieve appointments from Appointment Multiple PATIENT File #2 "RTN","SDESGETAPPTWRAP",117,0) Q "RTN","SDESGETAPPTWRAP",118,0) ; "RTN","SDESGETAPPTWRAP",119,0) GETAPPT40984(DFN,BDATE,EDATE) ;Traverse the "CPAT" cross reference in File #409.84 to retrieve appointments for a given datetime range "RTN","SDESGETAPPTWRAP",120,0) N APPTIEN,APPTDATA,RECNUM,CLINICIEN "RTN","SDESGETAPPTWRAP",121,0) S RECNUM=0 "RTN","SDESGETAPPTWRAP",122,0) S APPTIEN=0 F S APPTIEN=$O(^SDEC(409.84,"CPAT",DFN,APPTIEN)) Q:'APPTIEN D "RTN","SDESGETAPPTWRAP",123,0) . K SDMSG "RTN","SDESGETAPPTWRAP",124,0) . I '$$APPTINDTRANGE^SDESAPPT(APPTIEN,BDATE,EDATE) Q "RTN","SDESGETAPPTWRAP",125,0) . D SUMMARY^SDESAPPTDATA(.APPTDATA,APPTIEN) "RTN","SDESGETAPPTWRAP",126,0) . I $G(SDVIEWAPPTBY)=1,$G(APPTDATA("Resource","ClinicIEN"))'=SDCLINICIEN Q ;if view appointment by Clinic IEN, we are only interested of those Clinic IEN passed in "RTN","SDESGETAPPTWRAP",127,0) . S RECNUM=RECNUM+1 "RTN","SDESGETAPPTWRAP",128,0) . S APPTDATA("AppointmentType")=$$GET1^DIQ(409.84,APPTIEN_",",.06) "RTN","SDESGETAPPTWRAP",129,0) . I $D(APPTDATA) D "RTN","SDESGETAPPTWRAP",130,0) . . M SDAPPT40984("PatientAppt","File#409.84",RECNUM)=APPTDATA "RTN","SDESGETAPPTWRAP",131,0) . . I $G(SDVIEWAPPTBY)=0 D "RTN","SDESGETAPPTWRAP",132,0) . . . S CLINICIEN=$G(APPTDATA("Resource","ClinicIEN")) "RTN","SDESGETAPPTWRAP",133,0) . . . I $G(CLINICIEN)'="" S SDCLINICARY(CLINICIEN)="" ;this will use later when retrieving the appointments in File #44 "RTN","SDESGETAPPTWRAP",134,0) I $O(SDAPPT40984("PatientAppt","File#409.84",""))="" S SDAPPT40984("PatientAppt","File#409.84")="" ;if no record found, set the array into a null value "RTN","SDESGETAPPTWRAP",135,0) Q "RTN","SDESGETAPPTWRAP",136,0) ; "RTN","SDESGETAPPTWRAP",137,0) LOOPCLINICARY(SDCLINICARY,SDBEG,SDEND) ;Retrieve appointments from File #44 "RTN","SDESGETAPPTWRAP",138,0) N CLINICIEN "RTN","SDESGETAPPTWRAP",139,0) S CLINICIEN="" F S CLINICIEN=$O(SDCLINICARY(CLINICIEN)) Q:CLINICIEN="" D GETAPPT44(CLINICIEN,SDBEG,SDEND) "RTN","SDESGETAPPTWRAP",140,0) Q "RTN","SDESGETAPPTWRAP",141,0) ; "RTN","SDESGETAPPTWRAP",142,0) GETAPPT44(SDCLINICIEN,BDATE,EDATE) ;Traverse the "S" node in HOSPITAL LOCATION File #44 to retrieve appointments for a given datetime range "RTN","SDESGETAPPTWRAP",143,0) N APPDATETIME,APPTREC,SDAPPTNO,SDIEN,SDAPPT,SDMSG,SDSTDT,SDCLIN,FOUND,NUM,SDCLINDFN "RTN","SDESGETAPPTWRAP",144,0) S NUM=0 "RTN","SDESGETAPPTWRAP",145,0) S APPDATETIME=$$FMADD^XLFDT(BDATE,-1) ;always start the previous date in order to get the needed date range "RTN","SDESGETAPPTWRAP",146,0) F S APPDATETIME=$O(^SC(SDCLINICIEN,"S",APPDATETIME)) Q:(APPDATETIME="")!(APPDATETIME>EDATE) D "RTN","SDESGETAPPTWRAP",147,0) . Q:APPDATETIMEEDATE) D "RTN","SDESGETAPPTWRAP",170,0) . Q:APPDATETIME0 D "RTN","SDESMISSIONELG",73,0) . S SDCLNAME=$$GET1^DIQ(44,SDCLNIEN_",",.01,"I") ;retrieve the clinic name "RTN","SDESMISSIONELG",74,0) . I SDCLNAME="" S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,80) Q "RTN","SDESMISSIONELG",75,0) . S SDCLRESIEN=$$FIND1^DIC(409.831,"","MX",SDCLNAME,"","","SDERR") ;retrieve the resource IEN for the clinic "RTN","SDESMISSIONELG",76,0) . I $D(SDERR) S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,70) Q "RTN","SDESMISSIONELG",77,0) I $G(SDCLRESIEN)="" S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,70) Q $D(ERRORFLAG) "RTN","SDESMISSIONELG",78,0) I $G(ERRORFLAG)=1 Q $D(ERRORFLAG) "RTN","SDESMISSIONELG",79,0) I $G(REQDATE)="" S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,157) Q $D(ERRORFLAG) "RTN","SDESMISSIONELG",80,0) S SDSTOPCD=$$GET1^DIQ(44,SDCLNIEN,8,"I") ;Stop code ien "RTN","SDESMISSIONELG",81,0) I $G(SDSTOPCD)'="" S SDSTOPCD=$$GET1^DIQ(40.7,SDSTOPCD,1,"I") ;Stop code "RTN","SDESMISSIONELG",82,0) I $G(SDSTOPCD)="" S SDSTOPCD=0 "RTN","SDESMISSIONELG",83,0) ; "RTN","SDESMISSIONELG",84,0) S SDPRIM="N" "RTN","SDESMISSIONELG",85,0) S STOPCDSTR="" "RTN","SDESMISSIONELG",86,0) F SDI=2:1 S STOPCDSTR=$P($T(STOPCDLST+SDI),";;",2,3) Q:$P(STOPCDSTR,";")="QUIT" D "RTN","SDESMISSIONELG",87,0) .I STOPCDSTR[SDSTOPCD S SDPRIM="Y" Q "RTN","SDESMISSIONELG",88,0) ; "RTN","SDESMISSIONELG",89,0) I SDPRIM="Y" S REQENDDT=$$FMADD^XLFDT(REQDATE,20) S SDSERVICE="M" "RTN","SDESMISSIONELG",90,0) E S REQENDDT=$$FMADD^XLFDT(REQDATE,28) "RTN","SDESMISSIONELG",91,0) ; "RTN","SDESMISSIONELG",92,0) S SDEAS=$G(SDEAS,"") "RTN","SDESMISSIONELG",93,0) I $L(SDEAS) S SDEAS=$$EASVALIDATE^SDESUTIL(SDEAS) "RTN","SDESMISSIONELG",94,0) I +SDEAS=-1 S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,142) Q $D(ERRORFLAG) "RTN","SDESMISSIONELG",95,0) ; "RTN","SDESMISSIONELG",96,0) ; Determine Appointment availability is within Request starte date and Request end date "RTN","SDESMISSIONELG",97,0) K SDTMPARY "RTN","SDESMISSIONELG",98,0) S SDTMPARY=$NA(^TMP($J,"CLNCAVAIL")) "RTN","SDESMISSIONELG",99,0) K @SDTMPARY "RTN","SDESMISSIONELG",100,0) S REQDATENET=$$FMTONET^SDECDATE(REQDATE,"") "RTN","SDESMISSIONELG",101,0) S REQENDDTNET=$$FMTONET^SDECDATE(REQENDDT,"") "RTN","SDESMISSIONELG",102,0) D GETSLOTS^SDEC57(SDTMPARY,SDCLRESIEN,REQDATENET,REQENDDTNET) "RTN","SDESMISSIONELG",103,0) ;I $O(@SDTMPARY@(""))="" D ERRLOG^SDESJSON(.ERRORS,126) S ERRORFLAG=1 Q $D(ERRORFLAG) "RTN","SDESMISSIONELG",104,0) I $O(@SDTMPARY@(""))="" Q $D(ERRORFLAG) "RTN","SDESMISSIONELG",105,0) S SDTOTAL=@SDTMPARY@("CNT") "RTN","SDESMISSIONELG",106,0) F II=1:1:SDTOTAL D "RTN","SDESMISSIONELG",107,0) . S SDP1=$P(@SDTMPARY@(II),U,2) ;start date "RTN","SDESMISSIONELG",108,0) . S SDP2=$P(@SDTMPARY@(II),U,3) ;end date "RTN","SDESMISSIONELG",109,0) . S SDP3=+$P(@SDTMPARY@(II),U,4) ;open slots available "RTN","SDESMISSIONELG",110,0) . S SDP4=$P(@SDTMPARY@(II),U,5) ;access type (1=available, 2=not available, 3=cancelled) "RTN","SDESMISSIONELG",111,0) . ; "RTN","SDESMISSIONELG",112,0) . S SDSTRTDT=$$FMTISO^SDAMUTDT($P(SDP1,".")) ;start date - remove the time "RTN","SDESMISSIONELG",113,0) . S SDSTRTTM=$E($P(SDP1_"0000",".",2),1,4) ;start time "RTN","SDESMISSIONELG",114,0) . S SDSTOPTM=$E($P(SDP2_"0000",".",2),1,4) ;stop time "RTN","SDESMISSIONELG",115,0) . S SDSLOTS=$P(@SDTMPARY@(II),U,4) "RTN","SDESMISSIONELG",116,0) . S SDSLOTS=$S(SDSLOTS=" ":"",1:SDSLOTS) "RTN","SDESMISSIONELG",117,0) . S SDSLOTS=$S(SDP4=2:"",SDP4=3:"X",1:SDSLOTS) "RTN","SDESMISSIONELG",118,0) . I SDSLOTS>0 S SDAPPTAVAIL="Y" "RTN","SDESMISSIONELG",119,0) . S SDGETCLAVL($J,"SDESCLINICAVAIL",II)=SDSTRTDT_U_SDSTRTTM_U_SDSTOPTM_U_SDSLOTS "RTN","SDESMISSIONELG",120,0) K @SDTMPARY "RTN","SDESMISSIONELG",121,0) Q $D(ERRORFLAG) "RTN","SDESMISSIONELG",122,0) ; "RTN","SDESMISSIONELG",123,0) GETMSNELG(ELGARRAY,REQDATE,REQENDDT,PIDDATE,SDAPPTAVAIL) ; GET Eligibility "RTN","SDESMISSIONELG",124,0) N HASDATA "RTN","SDESMISSIONELG",125,0) S ELGARRAY("MissionEligibility","Code")="0" "RTN","SDESMISSIONELG",126,0) S ELGARRAY("MissionEligibility","Message")="Not Eligible-"_$S(SDSERVICE="M":"Primary Care or Mental Health",1:"Special Care") "RTN","SDESMISSIONELG",127,0) I (SDAPPTAVAIL="") D "RTN","SDESMISSIONELG",128,0) .I ((PIDDATE>=REQDATE)&(PIDDATE<=REQENDDT)) D "RTN","SDESMISSIONELG",129,0) ..S ELGARRAY("MissionEligibility","Code")="1" "RTN","SDESMISSIONELG",130,0) ..S ELGARRAY("MissionEligibility","Message")="Eligible-"_$S(SDSERVICE="M":"Primary Care or Mental Health",1:"Special Care") "RTN","SDESMISSIONELG",131,0) S HASDATA=($D(ELGARRAY)>1) "RTN","SDESMISSIONELG",132,0) Q HASDATA "RTN","SDESMISSIONELG",133,0) ; "RTN","SDESMISSIONELG",134,0) BUILDJSON(JSONRETURN,INPUT) ; Build JSON format "RTN","SDESMISSIONELG",135,0) S JSONERROR="" "RTN","SDESMISSIONELG",136,0) D ENCODE^XLFJSON("INPUT","JSONRETURN","JSONERROR") "RTN","SDESMISSIONELG",137,0) Q "RTN","SDESMISSIONELG",138,0) ; "RTN","SDESMISSIONELG",139,0) CLEANUP ; Cleanup "RTN","SDESMISSIONELG",140,0) K HASVLDERRORS,RETURN,HASFIELDS,ELGFIELDSARRAY,SDCLNIEN,REQENDDT,SDAPPTAVAIL,SDGETCLAVL,SDSTOPCD,SDTMPARY "RTN","SDESMISSIONELG",141,0) K ERRORFLAG "RTN","SDESMISSIONELG",142,0) K HASDATA "RTN","SDESMISSIONELG",143,0) K JSONERROR "RTN","SDESMISSIONELG",144,0) Q "RTN","SDESMISSIONELG",145,0) STOPCDLST ; "RTN","SDESMISSIONELG",146,0) ; List of Stop codes (Primary/Mental Health) "RTN","SDESMISSIONELG",147,0) ;;322^323^338^341^342^350^502^513^523^527^528^530^533^534^536 "RTN","SDESMISSIONELG",148,0) ;;539^545^546^550^560^565^566^576^577^579^584 "RTN","SDESMISSIONELG",149,0) ;;QUIT "RTN","SDESPATRPC") 0^14^B15821148^B7695958 "RTN","SDESPATRPC",1,0) SDESPATRPC ;ALB/TAW,MGD,RJT - PATIENT RPCS ;APR 14, 2022 "RTN","SDESPATRPC",2,0) ;;5.3;Scheduling;**792,804,805,807,809,814**;Aug 13, 1993;Build 11 "RTN","SDESPATRPC",3,0) ; "RTN","SDESPATRPC",4,0) ; Reference to ^IBA(355.33 in ICR #6891 "RTN","SDESPATRPC",5,0) ; "RTN","SDESPATRPC",6,0) Q "RTN","SDESPATRPC",7,0) ; "RTN","SDESPATRPC",8,0) INSURINDICATORS(RETURN,DFNS) ; "RTN","SDESPATRPC",9,0) Q:$D(DFNS)=0 "RTN","SDESPATRPC",10,0) N INDICATORS,SDINDEX,HASDFNERRORS,PTDFN,SDINDEX,SDCNT "RTN","SDESPATRPC",11,0) S SDINDEX="",SDCNT=0 "RTN","SDESPATRPC",12,0) F S SDINDEX=$O(DFNS(SDINDEX)) Q:(SDINDEX="")!(SDCNT>100) D "RTN","SDESPATRPC",13,0) .S SDCNT=SDCNT+1 "RTN","SDESPATRPC",14,0) .S PTDFN=DFNS(SDINDEX) "RTN","SDESPATRPC",15,0) .S INDICATORS("NeedInsuranceVerification",SDINDEX,"DFN")=PTDFN "RTN","SDESPATRPC",16,0) .I SDCNT>100 D "RTN","SDESPATRPC",17,0) ..S INDICATORS("NeedInsuranceVerification",SDINDEX,"Errors")="Max number of records allowed is 100" "RTN","SDESPATRPC",18,0) .Q:SDCNT>100 "RTN","SDESPATRPC",19,0) .N DFNERRORS "RTN","SDESPATRPC",20,0) .S HASDFNERRORS=$$VALIDATEDFN(.DFNERRORS,PTDFN) "RTN","SDESPATRPC",21,0) .I HASDFNERRORS D "RTN","SDESPATRPC",22,0) ..S INDICATORS("NeedInsuranceVerification",SDINDEX,"Errors")="DFN Error" "RTN","SDESPATRPC",23,0) ..S INDICATORS("NeedInsuranceVerification",SDINDEX,"YesNo")="" "RTN","SDESPATRPC",24,0) .I 'HASDFNERRORS D "RTN","SDESPATRPC",25,0) ..N FLG "RTN","SDESPATRPC",26,0) ..D NEEDVERIFY(.FLG,PTDFN,180,90) "RTN","SDESPATRPC",27,0) ..S INDICATORS("NeedInsuranceVerification",SDINDEX,"YesNo")=FLG "RTN","SDESPATRPC",28,0) D BUILDJSON(.RETURN,.INDICATORS) "RTN","SDESPATRPC",29,0) Q "RTN","SDESPATRPC",30,0) ; "RTN","SDESPATRPC",31,0) VALIDATEDFN(ERRORS,PDFN) ; "RTN","SDESPATRPC",32,0) N ERRORFLAG "RTN","SDESPATRPC",33,0) I PDFN="" S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,1) "RTN","SDESPATRPC",34,0) I PDFN'="",'$D(^DPT(PDFN,0)) S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,2) "RTN","SDESPATRPC",35,0) Q $D(ERRORFLAG) "RTN","SDESPATRPC",36,0) ; "RTN","SDESPATRPC",37,0) BUILDJSON(JSONRETURN,INPUT) ; "RTN","SDESPATRPC",38,0) N JSONERROR "RTN","SDESPATRPC",39,0) S JSONERROR="" "RTN","SDESPATRPC",40,0) D ENCODE^XLFJSON("INPUT","JSONRETURN","JSONERROR") "RTN","SDESPATRPC",41,0) Q "RTN","SDESPATRPC",42,0) ; "RTN","SDESPATRPC",43,0) INSURVERIFYREQ(RETURN,DFN,SDEAS) ; "RTN","SDESPATRPC",44,0) N POP,SDPAT,FLG,SDPAT "RTN","SDESPATRPC",45,0) S (FLG,POP)=0 "RTN","SDESPATRPC",46,0) I $G(DFN)="" S POP=1 D ERRLOG^SDESJSON(.SDPAT,1) "RTN","SDESPATRPC",47,0) I $G(DFN)'="",'$D(^DPT(DFN,0)) S POP=1 D ERRLOG^SDESJSON(.SDPAT,2) "RTN","SDESPATRPC",48,0) S SDEAS=$G(SDEAS,"") "RTN","SDESPATRPC",49,0) I $L(SDEAS) S SDEAS=$$EASVALIDATE^SDESUTIL(SDEAS) "RTN","SDESPATRPC",50,0) I +SDEAS=-1 S POP=1 D ERRLOG^SDESJSON(.SDPAT,142) "RTN","SDESPATRPC",51,0) I 'POP D NEEDVERIFY(.FLG,DFN,180,90) S SDPAT("NeedInsuranceVerification","YesNo")=FLG "RTN","SDESPATRPC",52,0) D BUILDER "RTN","SDESPATRPC",53,0) Q "RTN","SDESPATRPC",54,0) NEEDVERIFY(NEEDVERIFY,DFN,LASTVERFWINDOW,NOCOVWINDOW) ; "RTN","SDESPATRPC",55,0) ; LASTVERFWINDOW - How many days in the past to look for a Last Verified Date "RTN","SDESPATRPC",56,0) ; NOCOVWINDOW - How many days in the past to look for a No Coverage Date "RTN","SDESPATRPC",57,0) ; "RTN","SDESPATRPC",58,0) ; Return "RTN","SDESPATRPC",59,0) ; 1 = Verification needed (Default) "RTN","SDESPATRPC",60,0) ; 0 = Has active insurance or verification started "RTN","SDESPATRPC",61,0) N IENS,SDMSG,PATDATA,BILLPATDATA,NOCOVDT,COVBYHI,SUBIEN,XDT,TMPDT,INDEXEND,IBAIEN,IBADATA "RTN","SDESPATRPC",62,0) S NEEDVERIFY=1 "RTN","SDESPATRPC",63,0) ;Check the Insurance Verification Processor file "RTN","SDESPATRPC",64,0) ; The assumption is that once verification is complete all "RTN","SDESPATRPC",65,0) ; references to the patient are removed. "RTN","SDESPATRPC",66,0) S IBAIEN="" "RTN","SDESPATRPC",67,0) S INDEXEND=$$FMADD^XLFDT(DT,-LASTVERFWINDOW) "RTN","SDESPATRPC",68,0) F S IBAIEN=$O(^IBA(355.33,"C",DFN,IBAIEN)) Q:IBAIEN="" D "RTN","SDESPATRPC",69,0) . K IBADATA "RTN","SDESPATRPC",70,0) . Q:$$GET1^DIQ(355.33,IBAIEN,.01,"I")DT) Q ;term date of today is inactive coverage "RTN","SDESPATRPC",83,0) .;Check the Date Last Verified "RTN","SDESPATRPC",84,0) .S TMPDT=$P(PATDATA(2.312,IENS,1.03,"I"),".") "RTN","SDESPATRPC",85,0) .I TMPDT D "RTN","SDESPATRPC",86,0) ..S XDT=$$FMADD^XLFDT(DT,-LASTVERFWINDOW) "RTN","SDESPATRPC",87,0) ..I XDT40 S SDEAS=-1 "RTN","SDESUTIL",35,0) Q SDEAS "RTN","SDESUTIL",36,0) ; "RTN","SDESUTIL",37,0) ISDATEDST(DATE,DSTSUM) ;Does this date use Daylight Savings "RTN","SDESUTIL",38,0) ; DATE - FM format "RTN","SDESUTIL",39,0) ; DSTSUM - "DST" or "SUM" "RTN","SDESUTIL",40,0) ; Return 1 = DATE is considered DST or SUM. "RTN","SDESUTIL",41,0) ; 0 = DATE is not DST and not SUM "RTN","SDESUTIL",42,0) ; -1 = DATE is not FM format "RTN","SDESUTIL",43,0) N YR "RTN","SDESUTIL",44,0) S DATE=$G(DATE),DSTSUM=$G(DSTSUM) "RTN","SDESUTIL",45,0) I '$$VALIDFMFORMAT^SDECDATE(DATE) Q -1 "RTN","SDESUTIL",46,0) S YR=$E(DATE,2,3) "RTN","SDESUTIL",47,0) I DATE<$$DSTSTART(YR,DSTSUM) Q 0 "RTN","SDESUTIL",48,0) I DATE>$$DSTEND(YR,DSTSUM) Q 0 "RTN","SDESUTIL",49,0) Q 1 "RTN","SDESUTIL",50,0) DSTSTART(YR,DSTSUM) ;Daylight Savings or Summer start date "RTN","SDESUTIL",51,0) ; countries that observe DST or Summer ST (e.g., USA observes DST and Europe observes SUM ST) "RTN","SDESUTIL",52,0) ; YR - 2 digit year "RTN","SDESUTIL",53,0) ; DSTSUM - "DST" or "SUM" "RTN","SDESUTIL",54,0) ; Return is the FM date for the FIRST day of DST or SUM "RTN","SDESUTIL",55,0) N DSTMONTH,DOW,DSTDT,SUNDAY "RTN","SDESUTIL",56,0) S DSTMONTH="0301",DSTSUM=$G(DSTSUM) "RTN","SDESUTIL",57,0) ; SUNDAY will be 2nd Sunday in March OR Last Sunday in March "RTN","SDESUTIL",58,0) S SUNDAY=$S(DSTSUM="DST":2,DSTSUM="SUM":"4,5",1:2) ;if not DST or SUM, treat as DST "RTN","SDESUTIL",59,0) S YR=$G(YR) "RTN","SDESUTIL",60,0) I YR="" S DSTDT=$E(DT,1,3)_DSTMONTH "RTN","SDESUTIL",61,0) E S DSTDT=$E(DT)_YR_DSTMONTH "RTN","SDESUTIL",62,0) S DOW=$$DOW^XLFDT(DSTDT,1) "RTN","SDESUTIL",63,0) I DOW D "RTN","SDESUTIL",64,0) .I DSTSUM="DST" S DSTDT=DSTDT+(SUNDAY*7)-DOW "RTN","SDESUTIL",65,0) .E S DSTDT=$$SUMMER(DSTDT,DOW,SUNDAY) "RTN","SDESUTIL",66,0) Q DSTDT "RTN","SDESUTIL",67,0) DSTEND(YR,DSTSUM) ;Daylight Savings END date "RTN","SDESUTIL",68,0) ; YR - 2 digit year "RTN","SDESUTIL",69,0) ; DSTSUM - "DST" or "SUM" "RTN","SDESUTIL",70,0) ; Return is the FM date for the LAST day of DST or SUM "RTN","SDESUTIL",71,0) N DSTMONTH,DOW,DSTDT,SUNDAY "RTN","SDESUTIL",72,0) S DSTSUM=$G(DSTSUM) "RTN","SDESUTIL",73,0) S DSTMONTH=$S(DSTSUM="DST":"1101",DSTSUM="SUM":"1001",1:"1101") "RTN","SDESUTIL",74,0) ; SUNDAY will be first Sunday in November or last Sunday in October "RTN","SDESUTIL",75,0) S SUNDAY=$S(DSTSUM="DST":1,DSTSUM="SUM":"4,5",1:1) ; if not DST or SUM treat as DST "RTN","SDESUTIL",76,0) S YR=$G(YR) "RTN","SDESUTIL",77,0) I YR="" S DSTDT=$E(DT,1,3)_DSTMONTH "RTN","SDESUTIL",78,0) E S DSTDT=$E(DT)_YR_DSTMONTH "RTN","SDESUTIL",79,0) S DOW=$$DOW^XLFDT(DSTDT,1) "RTN","SDESUTIL",80,0) I DOW D "RTN","SDESUTIL",81,0) .I DSTSUM="DST" S DSTDT=DSTDT+(SUNDAY*7)-DOW "RTN","SDESUTIL",82,0) .E S DSTDT=$$SUMMER(DSTDT,DOW,SUNDAY) "RTN","SDESUTIL",83,0) Q $$FMADD^XLFDT(DSTDT,-1) "RTN","SDESUTIL",84,0) ; "RTN","SDESUTIL",85,0) SUMMER(DSTDT,DOW,SUNDAY) ; determine last Sunday of MARCH or OCTOBER "RTN","SDESUTIL",86,0) ; DSTDT - March or October (e.g, CYY0301 or CYY1001) "RTN","SDESUTIL",87,0) ; DOW - 1, 2, 3, 4, 5, or 6 "RTN","SDESUTIL",88,0) ; SUNDAY - "4,5" representing 4th or 5th Sunday of March or October "RTN","SDESUTIL",89,0) ; Returns the date when SUMMER offset begins or ends (e.g., eastern europe uses Summer offset) "RTN","SDESUTIL",90,0) N X,VALIDSUNDAY,LASTSUNDAY "RTN","SDESUTIL",91,0) S DSTDT=$G(DSTDT),DOW=$G(DOW),SUNDAY=$G(SUNDAY) "RTN","SDESUTIL",92,0) S LASTSUNDAY=0 "RTN","SDESUTIL",93,0) F X=1,2 S VALIDSUNDAY=DSTDT+($P(SUNDAY,",",X)*7)-DOW I $$VALIDFMFORMAT^SDECDATE(VALIDSUNDAY) S LASTSUNDAY=VALIDSUNDAY "RTN","SDESUTIL",94,0) Q LASTSUNDAY "RTN","SDESUTIL",95,0) ; "RTN","SDESUTIL",96,0) TIMEZONEDATA(CLINICIEN) ;Get timezone and offsets "RTN","SDESUTIL",97,0) ; CLINIC - IEN from Hospital Location #44 "RTN","SDESUTIL",98,0) ; If clinic is not passed, use default Facility/Institution "RTN","SDESUTIL",99,0) ; Output: "RTN","SDESUTIL",100,0) ; Returns TimeZone Name ^ TimeZone IEN ^ TimeZone Exception ^ Offset for Standard Time ^ Offset for DST or SUMMER ^ "RTN","SDESUTIL",101,0) N SDINST,SDDIV,SDTIMEZONEE,SDTIMEZONEI,TIMEZONEEXECPT,X,POP,TIMEFRAMEARY,OFFSET,OFFSETDSTSUM,DSTSUM,RETURN,TIMEFRAMEIEN "RTN","SDESUTIL",102,0) S (POP,SDINST,DSTSUM)="",(OFFSET,OFFSETDSTSUM)=-9999 "RTN","SDESUTIL",103,0) I $G(CLINICIEN) D "RTN","SDESUTIL",104,0) .S SDDIV=$$GET1^DIQ(44,CLINICIEN_",",3.5,"I") "RTN","SDESUTIL",105,0) .S:SDDIV SDINST=$$GET1^DIQ(40.8,SDDIV_",",.07,"I") "RTN","SDESUTIL",106,0) I SDINST="" S SDINST=$$GET1^DIQ(8989.3,1,217,"I") "RTN","SDESUTIL",107,0) S SDTIMEZONEE=$$GET1^DIQ(4,SDINST,800,"E") "RTN","SDESUTIL",108,0) S SDTIMEZONEI=$$GET1^DIQ(4,SDINST,800,"I") "RTN","SDESUTIL",109,0) S TIMEZONEEXECPT=$$GET1^DIQ(4,SDINST,802) "RTN","SDESUTIL",110,0) I TIMEZONEEXECPT'=0 S TIMEZONEEXECPT=1 ;1=Use DST 0=Only standard time "RTN","SDESUTIL",111,0) ; "RTN","SDESUTIL",112,0) F X=1:1:3 D Q:POP "RTN","SDESUTIL",113,0) .S TIMEFRAMEIEN=X_","_SDTIMEZONEI_"," "RTN","SDESUTIL",114,0) .D GETS^DIQ(1.711,TIMEFRAMEIEN,".01;.02","IE","TIMEFRAMEARY","SDMSG") ;Data from WORLD TIMEZONE file "RTN","SDESUTIL",115,0) .I '$D(TIMEFRAMEARY(1.711,TIMEFRAMEIEN,.01)) S POP=1 Q "RTN","SDESUTIL",116,0) .I $G(TIMEFRAMEARY(1.711,TIMEFRAMEIEN,.01,"I"))="SST" S OFFSET=$G(TIMEFRAMEARY(1.711,TIMEFRAMEIEN,.02,"E")) "RTN","SDESUTIL",117,0) .I $G(TIMEFRAMEARY(1.711,TIMEFRAMEIEN,.01,"I"))="DST" S DSTSUM="DST",OFFSETDSTSUM=$G(TIMEFRAMEARY(1.711,TIMEFRAMEIEN,.02,"E")) ;vse-2705 "RTN","SDESUTIL",118,0) .I $G(TIMEFRAMEARY(1.711,TIMEFRAMEIEN,.01,"I"))="SUM" S DSTSUM="SUM",OFFSETDSTSUM=$G(TIMEFRAMEARY(1.711,TIMEFRAMEIEN,.02,"E")) ;vse-2705 "RTN","SDESUTIL",119,0) ; "RTN","SDESUTIL",120,0) Q SDTIMEZONEE_"^"_SDTIMEZONEI_"^"_TIMEZONEEXECPT_"^"_OFFSET_"^"_OFFSETDSTSUM_"^"_DSTSUM ;vse-2705 "RTN","SDESUTIL",121,0) ; "RTN","SDESUTIL",122,0) GETTZOFFSET(SDDATE,SDCLINIC) ;Get Time Zone offset based on clinic and daylight savings "RTN","SDESUTIL",123,0) ; SDCLINIC - OPT - IEN from Hospital Location #44 "RTN","SDESUTIL",124,0) ; SDDATE - REQ - FM fomatted date "RTN","SDESUTIL",125,0) ; Return "RTN","SDESUTIL",126,0) ; If clinic is passed in get Division then Instution "RTN","SDESUTIL",127,0) ; Otherwise get Instution from Kernel System Parameters "RTN","SDESUTIL",128,0) ; Get the Time Zone and Time Zone Exception from the Instution "RTN","SDESUTIL",129,0) N OFFSET,TZINFO "RTN","SDESUTIL",130,0) S SDDATE=$G(SDDATE) "RTN","SDESUTIL",131,0) I '$$VALIDFMFORMAT^SDECDATE(SDDATE) Q "" "RTN","SDESUTIL",132,0) S SDCLINIC=$G(SDCLINIC) "RTN","SDESUTIL",133,0) S TZINFO=$$TIMEZONEDATA(SDCLINIC) "RTN","SDESUTIL",134,0) S OFFSET=$P(TZINFO,"^",4) ;assume non DST "RTN","SDESUTIL",135,0) ; If the Institution uses DST or SUMMER & SDDATE is in the daylight savings period, then send the DST/SUMMER Offset "RTN","SDESUTIL",136,0) I $P(TZINFO,"^",3)=1 S OFFSET=$S($$ISDATEDST(SDDATE,$P(TZINFO,"^",6)):$P(TZINFO,"^",5),1:OFFSET) "RTN","SDESUTIL",137,0) Q OFFSET "RTN","SDUNC") 0^15^B24539563^B23671243 "RTN","SDUNC",1,0) SDUNC ;ALB/MGD - RESTORE CLINIC AVAILABILITY ;Apr 12, 2022 "RTN","SDUNC",2,0) ;;5.3;Scheduling;**79,303,380,452,780,806,814**;Aug 13, 1993;Build 11 "RTN","SDUNC",3,0) ;;Per VHA Directive 6402, this routine should not be modified "RTN","SDUNC",4,0) ; "RTN","SDUNC",5,0) D DT^DICRW S DIC=44,DIC(0)="MEQA",DIC("S")="I $P(^(0),""^"",3)=""C"",'$G(^(""OOS""))",DIC("A")="Select CLINIC NAME: " D ^DIC K DIC("S"),DIC("A") Q:"^"[X G:Y<0 SDUNC Q:'$D(^SC(+Y,"SL")) "RTN","SDUNC",6,0) S SC=+Y,SL=^("SL") ;NAKED REFERENCE - ^SC(IFN,"SL") "RTN","SDUNC",7,0) N SDRES S SDRES=$$CLNCK^SDUTL2(SC,1) "RTN","SDUNC",8,0) I 'SDRES W !,?5,"Clinic MUST be corrected before continuing." G SDUNC "RTN","SDUNC",9,0) S %DT="AEXF",%DT("A")="RESTORE '"_$P(Y,U,2)_"' FOR WHAT DATE: " D ^%DT K %DT Q:Y<0 "RTN","SDUNC",10,0) S (SD,CDATE)=Y,%=$P(SL,U,6),SI=$S(%="":4,%<3:4,%:%,1:4),%=$P(SL,U,3),STARTDAY=$S(%:%,1:8) "RTN","SDUNC",11,0) K SDIN,SDIN1,SDRE,SDRE1 I $D(^SC(SC,"I")) S SDIN=+^("I"),SDRE=+$P(^("I"),"^",2),Y=SDIN D DTS^SDUTL S SDIN1=Y,Y=SDRE D DTS^SDUTL S SDRE1=Y "RTN","SDUNC",12,0) I $S('$D(SDIN):0,'SDIN:0,SDIN>CDATE:0,SDRE'>CDATE&(SDRE):0,1:1) W !,*7,"Clinic is inactive ",$S(SDRE:"from ",1:"as of "),SDIN1,$S(SDRE:" to "_SDRE1,1:"") G SDUNC "RTN","SDUNC",13,0) K SDIN,SDIN1,SDRE,SDRE1 G:'$D(^SC(SC,"ST",SD,1)) NOWAY "RTN","SDUNC",14,0) I $D(^SC(SC,"ST",SD,1)),^(1)'["CANCELLED"&(^(1)'["X") G NOWAY "RTN","SDUNC",15,0) I $D(^SC(SC,"ST",SD,9)) I $D(^SC(SC,"OST",SD,1)) D FIX Q:"^"[$G(X) Q:^SC(SC,"ST",SD,1)["X"&('$D(SDFR1)) S ^SC(SC,"ST",SD,1)=HOLD K:^(1)'["X" ^SC(SC,"ST",SD,"CAN") W !,"RESTORED!",*7 D CHK Q "RTN","SDUNC",16,0) I $D(^SC(SC,"ST",SD,9)),'$D(^SC(SC,"OST",SD,1)) G ERRM^SDUNC1 "RTN","SDUNC",17,0) D B I '$D(DH) G NOPAT "RTN","SDUNC",18,0) Q:^SC(SC,"ST",SD,1)["X"&('$D(SDFR1)) S ^SC(SC,"ST",SD,0)=SD,^SC(SC,"ST",SD,1)=DH G N "RTN","SDUNC",19,0) NOWAY W !,*7,"CLINIC HAS NOT BEEN CANCELLED FOR THAT DATE, SO IT CANNOT BE RESTORED",*7 G SDUNC "RTN","SDUNC",20,0) NOPAT W !,*7,"NO UPCOMING OR INDEFINITE APPOINTMENT PATTERN EXISTS FOR DAY OF WEEK,",!,"CREATE 'AVAILABILITY' PATTERN THRU 'CLINIC SETUP', THEN RESTORE AGAIN",*7 G SDUNC "RTN","SDUNC",21,0) B S X=SD D DOW^SDM0 S DOW=Y,SS=$O(^SC(SC,"T"_Y,X)) I SS'="",$D(^(SS,1)),^(1)]"" S DH=$P("SU^MO^TU^WE^TH^FR^SA","^",DOW+1)_" "_$E(SD,6,7)_$J("",SI+SI-6)_^(1),DO=X+1,DA(1)=SC,HOLD=DH D FIX2 "RTN","SDUNC",22,0) Q "RTN","SDUNC",23,0) N I '$F(^SC(SC,"ST",SD,1),"[") K ^SC(SC,"ST",SD) W !,*7,"CLINIC DOES NOT MEET ON THAT DAY" G SDUNC "RTN","SDUNC",24,0) K:^SC(SC,"ST",SD,1)'["X" ^SC(SC,"ST",SD,"CAN") W !,"RESTORED!",*7 D TMPD,CHK Q "RTN","SDUNC",25,0) FIX I ^SC(SC,"ST",SD,1)["X" S SDREST=^SC(SC,"OST",SD,1) D SEL Q "RTN","SDUNC",26,0) S HOLD=^SC(SC,"OST",SD,1) "RTN","SDUNC",27,0) Q "RTN","SDUNC",28,0) CHK F N1=SD:0 S N1=$O(^SC(SC,"S",N1)) Q:'N1!(N1\1-SD) I $D(^SC(SC,"S",N1,"MES")) D KMES I $D(SDFR1),'$D(^("MES")) Q "RTN","SDUNC",29,0) Q "RTN","SDUNC",30,0) FIX2 Q:^SC(SC,"ST",SD,1)'["X" "RTN","SDUNC",31,0) S SDREST=DH D SEL Q:'$D(SDFR1) S DH=HOLD "RTN","SDUNC",32,0) Q "RTN","SDUNC",33,0) SEL K SDFR1 Q:'$D(^SC(SC,"SL")) S SL=^("SL"),%=$P(SL,U,6),SI=$S(%="":4,%<3:4,%:%,1:4),%=$P(SL,U,3),STARTDAY=$S(%:%,1:8) "RTN","SDUNC",34,0) W !,"Clinic has been cancelled for the following periods:",! "RTN","SDUNC",35,0) K SDTEMP,SDZZ S SDZZ=0 F I=SD:0 S I=$O(^SC(SC,"SDCAN",I)) Q:'I!(I\1-SD) S SDZZ=SDZZ+1,X=I D TM S SDFR=X,SDFRX=X1,X="."_$P(^(I,0),"^",2) D TM S SDTO=X,SDTEMP(SDFRX_"-"_X1)=SDFR_"^"_SDTO,SDZZ(SDZZ)=SDFRX_"-"_X1 "RTN","SDUNC",36,0) F I=SD:0 S I=$O(^SC(SC,"S",I)) Q:'I!(I\1-SD) I $D(^SC(SC,"S",I,"MES")),'$D(^SC(SC,"SDCAN",I)) S X=I D TM S SDFRX=X1,SDFR=X,X="."_$E(^SC(SC,"S",I,"MES"),17,20) D TM S SDZZ=SDZZ+1,SDTEMP(SDFRX_"-"_X1)=SDFR_"^"_X,SDZZ(SDZZ)=SDFRX_"-"_X1 "RTN","SDUNC",37,0) F I1=0:0 S I1=$O(SDZZ(I1)) Q:'I1 S I=SDTEMP(SDZZ(I1)) W !,?9,"(",$J(I1,2),") ","From: ",$J($P(I,"^",1),8)," To: ",$J($P(I,"^",2),8) "RTN","SDUNC",38,0) A K SDFRX,X1,SDFR,SDTO R !!,"RESTORE WHICH PERIOD?: ",X:DTIME Q:"^"[X "RTN","SDUNC",39,0) I X?1"?".E W !,"Enter the # that precedes the time period you want to restore." G A "RTN","SDUNC",40,0) S SDR=X I $D(SDZZ(SDR)),$D(SDTEMP(SDZZ(SDR))) W " ",$P(SDTEMP(SDZZ(SDR)),"^",1)," - ",$P(SDTEMP(SDZZ(SDR)),"^",2) G ROK "RTN","SDUNC",41,0) W !,*7,"INVALID CHOICE, TRY AGAIN" G A "RTN","SDUNC",42,0) ROK S X=$P(SDZZ(SDR),"-",1) D TC S FR=X,SDBEG=%+SI+SI,X=$P(SDZZ(SDR),"-",2) D TC S TO=X,SDEND=%+SI+SI "RTN","SDUNC",43,0) S SDFR1=CDATE+(FR/10000) K SDTEMP,SDZZ,SDR "RTN","SDUNC",44,0) S HOLD=^SC(SC,"ST",SD,1),HOLD=$E(HOLD,1,SDBEG-1)_$E(SDREST,SDBEG,SDEND)_$E(HOLD,SDEND+1,80) D TMPP K ^SC(SC,"SDCAN",SDFR1) I $D(^SC(SC,"SDCAN",0)) S CNT=$P(^(0),U,4),CNT=$S(CNT>0:CNT-1,1:0),^(0)=$P(^(0),U,1,3)_U_CNT K CNT "RTN","SDUNC",45,0) I HOLD'["[" S I5=$F(HOLD,"|"),HOLD=$E(HOLD,1,(I5-2))_"["_$E(HOLD,I5,999) K I5 "RTN","SDUNC",46,0) K SDBEG,SDEND,SDANS,SI,STARTDAY,FR,TO Q "RTN","SDUNC",47,0) KMES I '$D(SDFR1) K ^("MES") Q ;NAKED REFERENCE - ^SC(IFN,"S",DATE,"MES") "RTN","SDUNC",48,0) I $D(SDFR1),N1=SDFR1 K ^("MES") Q ;NAKED REFERENCE - ^SC(IFN,"S",DATE,"MES") "RTN","SDUNC",49,0) Q "RTN","SDUNC",50,0) TC S %=$E(X,3,4),%=X\100-STARTDAY*SI+(%*SI\60)*2 "RTN","SDUNC",51,0) Q "RTN","SDUNC",52,0) TM S X=$E($P(X,".",2)_"0000",1,4),X1=X,%=X>1159 S:X>1259 X=X-1200 S X=X\100_":"_$E(X#100+100,2,3)_" "_$E("AP",%+1)_"M" Q "RTN","SDUNC",53,0) TMPD D EN^SDTMPHLC(SC,SD,,"UC","RESTORED - DAY") Q ;780 "RTN","SDUNC",54,0) TMPP N F,T S F=+(SD_"."_FR),T=+(SD_"."_TO) D EN^SDTMPHLC(SC,F,T,"UP","RESTORED - PARTIAL DAY") Q ;780 "VER") 8.0^22.2 "BLD",12795,6) ^666 **END** **END**