Released SD*5.3*650 SEQ #554 Extracted from mail message **KIDS**:SD*5.3*650^ **INSTALL NAME** SD*5.3*650 "BLD",10281,0) SD*5.3*650^SCHEDULING^0^3170727^y "BLD",10281,1,0) ^^11^11^3170727^^^^ "BLD",10281,1,1,0) This patch release includes three bug fixes: "BLD",10281,1,2,0) "BLD",10281,1,3,0) 1. Fixes an issue that prevented from printing an extra blank page before "BLD",10281,1,4,0) printing the actual pre-appointment letter when make appointment. "BLD",10281,1,5,0) "BLD",10281,1,6,0) 2. Fixes an issue that prevented from printing an extra blank page before "BLD",10281,1,7,0) printing the actual cancel appointment letter in the Appointment "BLD",10281,1,8,0) Management. "BLD",10281,1,9,0) "BLD",10281,1,10,0) 3. Fixes some misspelling words on the fields and indexed in the "BLD",10281,1,11,0) Outpatient Encounter file (#409.68). "BLD",10281,4,0) ^9.64PA^409.68^1 "BLD",10281,4,409.68,0) 409.68 "BLD",10281,4,409.68,2,0) ^9.641^409.68^1 "BLD",10281,4,409.68,2,409.68,0) OUTPATIENT ENCOUNTER (File-top level) "BLD",10281,4,409.68,2,409.68,1,0) ^9.6411^201^7 "BLD",10281,4,409.68,2,409.68,1,.01,0) DATE "BLD",10281,4,409.68,2,409.68,1,.05,0) VISIT FILE ENTRY "BLD",10281,4,409.68,2,409.68,1,.07,0) CHECK OUT PROCESS COMPLETION "BLD",10281,4,409.68,2,409.68,1,.08,0) ORIGINATING PROCESS TYPE "BLD",10281,4,409.68,2,409.68,1,.09,0) EXTENDED REFERENCE "BLD",10281,4,409.68,2,409.68,1,.1,0) APPOINTMENT TYPE "BLD",10281,4,409.68,2,409.68,1,201,0) COMPUTER GENERATED? "BLD",10281,4,409.68,222) y^y^p^^^^n^^n "BLD",10281,4,409.68,224) "BLD",10281,4,"APDD",409.68,409.68) "BLD",10281,4,"APDD",409.68,409.68,.01) "BLD",10281,4,"APDD",409.68,409.68,.05) "BLD",10281,4,"APDD",409.68,409.68,.07) "BLD",10281,4,"APDD",409.68,409.68,.08) "BLD",10281,4,"APDD",409.68,409.68,.09) "BLD",10281,4,"APDD",409.68,409.68,.1) "BLD",10281,4,"APDD",409.68,409.68,201) "BLD",10281,4,"B",409.68,409.68) "BLD",10281,6.3) 3 "BLD",10281,"KRN",0) ^9.67PA^779.2^20 "BLD",10281,"KRN",.4,0) .4 "BLD",10281,"KRN",.401,0) .401 "BLD",10281,"KRN",.402,0) .402 "BLD",10281,"KRN",.403,0) .403 "BLD",10281,"KRN",.5,0) .5 "BLD",10281,"KRN",.84,0) .84 "BLD",10281,"KRN",3.6,0) 3.6 "BLD",10281,"KRN",3.8,0) 3.8 "BLD",10281,"KRN",9.2,0) 9.2 "BLD",10281,"KRN",9.8,0) 9.8 "BLD",10281,"KRN",9.8,"NM",0) ^9.68A^2^2 "BLD",10281,"KRN",9.8,"NM",1,0) SDM1A^^0^B131891737 "BLD",10281,"KRN",9.8,"NM",2,0) SDCNP1A^^0^B30698444 "BLD",10281,"KRN",9.8,"NM","B","SDCNP1A",2) "BLD",10281,"KRN",9.8,"NM","B","SDM1A",1) "BLD",10281,"KRN",19,0) 19 "BLD",10281,"KRN",19.1,0) 19.1 "BLD",10281,"KRN",101,0) 101 "BLD",10281,"KRN",409.61,0) 409.61 "BLD",10281,"KRN",771,0) 771 "BLD",10281,"KRN",779.2,0) 779.2 "BLD",10281,"KRN",870,0) 870 "BLD",10281,"KRN",8989.51,0) 8989.51 "BLD",10281,"KRN",8989.52,0) 8989.52 "BLD",10281,"KRN",8994,0) 8994 "BLD",10281,"KRN","B",.4,.4) "BLD",10281,"KRN","B",.401,.401) "BLD",10281,"KRN","B",.402,.402) "BLD",10281,"KRN","B",.403,.403) "BLD",10281,"KRN","B",.5,.5) "BLD",10281,"KRN","B",.84,.84) "BLD",10281,"KRN","B",3.6,3.6) "BLD",10281,"KRN","B",3.8,3.8) "BLD",10281,"KRN","B",9.2,9.2) "BLD",10281,"KRN","B",9.8,9.8) "BLD",10281,"KRN","B",19,19) "BLD",10281,"KRN","B",19.1,19.1) "BLD",10281,"KRN","B",101,101) "BLD",10281,"KRN","B",409.61,409.61) "BLD",10281,"KRN","B",771,771) "BLD",10281,"KRN","B",779.2,779.2) "BLD",10281,"KRN","B",870,870) "BLD",10281,"KRN","B",8989.51,8989.51) "BLD",10281,"KRN","B",8989.52,8989.52) "BLD",10281,"KRN","B",8994,8994) "BLD",10281,"QDEF") ^^^^NO^^^^^^YES "BLD",10281,"QUES",0) ^9.62^^ "BLD",10281,"REQB",0) ^9.611^2^2 "BLD",10281,"REQB",1,0) SD*5.3*517^2 "BLD",10281,"REQB",2,0) SD*5.3*665^2 "BLD",10281,"REQB","B","SD*5.3*517",1) "BLD",10281,"REQB","B","SD*5.3*665",2) "FIA",409.68) OUTPATIENT ENCOUNTER "FIA",409.68,0) ^SCE( "FIA",409.68,0,0) 409.68ID "FIA",409.68,0,1) y^y^p^^^^n^^n "FIA",409.68,0,10) "FIA",409.68,0,11) "FIA",409.68,0,"RLRO") "FIA",409.68,0,"VR") 5.3^SD "FIA",409.68,409.68) 1 "FIA",409.68,409.68,.01) "FIA",409.68,409.68,.05) "FIA",409.68,409.68,.07) "FIA",409.68,409.68,.08) "FIA",409.68,409.68,.09) "FIA",409.68,409.68,.1) "FIA",409.68,409.68,201) "IX",409.68,409.68,"ACOD",0) 409.68^ACOD^Sort records by Patient and Check Out Completed Date.^MU^^R^IR^I^409.68^^^^^S "IX",409.68,409.68,"ACOD",.1,0) ^^5^5^3140716^ "IX",409.68,409.68,"ACOD",.1,1,0) This index sorts records by Patient (.02) and Check Out Process Completion "IX",409.68,409.68,"ACOD",.1,2,0) (.07). The index is used by a PCMM Web RPC to find a patient's completed "IX",409.68,409.68,"ACOD",.1,3,0) encounters within the past 30 days (possibly 90 days). Given this "IX",409.68,409.68,"ACOD",.1,4,0) requirement, a record is only indexed if Check Out Process Completion "IX",409.68,409.68,"ACOD",.1,5,0) (.07) is on or after 04/01/2014. "IX",409.68,409.68,"ACOD",1) I X(2)>3140400 S ^SCE("ACOD",X(1),X(2),DA)="" "IX",409.68,409.68,"ACOD",2) K ^SCE("ACOD",X(1),X(2),DA) "IX",409.68,409.68,"ACOD",2.5) K ^SCE("ACOD") "IX",409.68,409.68,"ACOD",11.1,0) ^.114IA^2^2 "IX",409.68,409.68,"ACOD",11.1,1,0) 1^F^409.68^.02^^1^F "IX",409.68,409.68,"ACOD",11.1,2,0) 2^F^409.68^.07^^2^F "IX",409.68,409.68,"D",0) 409.68^D^VSE Resource Management Report Index^R^^F^IR^I^409.68^^^^^LS "IX",409.68,409.68,"D",.1,0) ^^11^11^3150813^ "IX",409.68,409.68,"D",.1,1,0) This cross reference is only used by the VistA Scheduling GUI Resource "IX",409.68,409.68,"D",.1,2,0) Management Reports. The 'D' cross reference is used to collect the total "IX",409.68,409.68,"D",.1,3,0) Outpatient Encounters for a Provider over a year time period. The cross "IX",409.68,409.68,"D",.1,4,0) reference is only set if the following conditions are met: "IX",409.68,409.68,"D",.1,5,0) 1. DATE field (#.01) of encounter is less than one year. "IX",409.68,409.68,"D",.1,6,0) 2. Encounter has a valid VISIT FILE ENTRY field (#.05) value. "IX",409.68,409.68,"D",.1,7,0) 3. Encounter has a V PROVIDER file entry associated with the VISIT FILE "IX",409.68,409.68,"D",.1,8,0) ENTRY. "IX",409.68,409.68,"D",.1,9,0) 4. Encounter does NOT have a PARENT ENCOUNTER field #(.06) value. "IX",409.68,409.68,"D",.1,10,0) 5. Encounter has a valid LOCATION field (#.04) value. "IX",409.68,409.68,"D",.1,11,0) 6. Encounter LOCATION is NOT a non-count clinic. "IX",409.68,409.68,"D",1) S ^SCE("D",X(1),X(2),DA)="" "IX",409.68,409.68,"D",1.4) S X=$$SETDXREF^SDCED(DA) "IX",409.68,409.68,"D",2) K ^SCE("D",X(1),X(2),DA) "IX",409.68,409.68,"D",2.4) S X=$$KILDXREF^SDCED(DA) "IX",409.68,409.68,"D",2.5) K ^SCE("D") "IX",409.68,409.68,"D",11.1,0) ^.114IA^3^2 "IX",409.68,409.68,"D",11.1,1,0) 1^F^409.68^.01^^1^F "IX",409.68,409.68,"D",11.1,1,3) "IX",409.68,409.68,"D",11.1,3,0) 2^F^409.68^.07^^2^F "IX",409.68,409.68,"D",11.1,3,3) "MBREQ") 0 "PKG",16,-1) 1^1 "PKG",16,0) SCHEDULING^SD^APPOINTMENTS,PROFILES,LETTERS,AMIS REPORTS "PKG",16,20,0) ^9.402P^^ "PKG",16,22,0) ^9.49I^1^1 "PKG",16,22,1,0) 5.3^2930813 "PKG",16,22,1,"PAH",1,0) 650^3170727 "PKG",16,22,1,"PAH",1,1,0) ^^11^11^3170727 "PKG",16,22,1,"PAH",1,1,1,0) This patch release includes three bug fixes: "PKG",16,22,1,"PAH",1,1,2,0) "PKG",16,22,1,"PAH",1,1,3,0) 1. Fixes an issue that prevented from printing an extra blank page before "PKG",16,22,1,"PAH",1,1,4,0) printing the actual pre-appointment letter when make appointment. "PKG",16,22,1,"PAH",1,1,5,0) "PKG",16,22,1,"PAH",1,1,6,0) 2. Fixes an issue that prevented from printing an extra blank page before "PKG",16,22,1,"PAH",1,1,7,0) printing the actual cancel appointment letter in the Appointment "PKG",16,22,1,"PAH",1,1,8,0) Management. "PKG",16,22,1,"PAH",1,1,9,0) "PKG",16,22,1,"PAH",1,1,10,0) 3. Fixes some misspelling words on the fields and indexed in the "PKG",16,22,1,"PAH",1,1,11,0) Outpatient Encounter file (#409.68). "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") YES "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") 2 "RTN","SDCNP1A") 0^2^B30698444^B29978567 "RTN","SDCNP1A",1,0) SDCNP1A ;ALB/LDB - CANCEL APPT. (continued) ;5/26/05 10:59am "RTN","SDCNP1A",2,0) ;;5.3;Scheduling;**167,340,398,478,517,650**;Aug 13, 1993;Build 3 "RTN","SDCNP1A",3,0) ; "RTN","SDCNP1A",4,0) LOOP S SDCNT1=0 F SDAP=0:0 S SDAP=$O(^UTILITY($J,"SDCNP2","REBK",DFN,SDAP)) Q:SDAP'>0 S SDP1=^(SDAP),S1=$P(SDP1,"^",2),S9=$P(^SC(S1,0),"^") D SDDT Q:X8="^" D RBK S MAX=1 "RTN","SDCNP1A",5,0) Q "RTN","SDCNP1A",6,0) SDDT W !!,"IN ",S9 D:'$D(DT) DT^SDUTL D DT S %DT="AEX",%DT("A")="START REBOOKING FROM WHAT DATE: "_D S %DT(0)=DT D ^%DT K %DT S X8=X Q:$D(DTOUT)!(X="^") S:X8="" Y=DT G:Y<0 SDDT S SDDT=+Y\1 K X,Y,DIC S X1=SDDT,X2=DT D ^%DTC "RTN","SDCNP1A",7,0) S (M8,MAX)=0,S1=$P(SDP1,"^",2),S2=$P(SDP1,"^"),M1=$S($D(^SC(S1,"SDP")):$P(^("SDP"),"^",4),1:0) D MAX G:M8 SDDT "RTN","SDCNP1A",8,0) I S2>DT S X1=SDDT,X2=1 D C^%DTC S SDDT=X "RTN","SDCNP1A",9,0) Q "RTN","SDCNP1A",10,0) MAX I X>M1 S M8=1 W !!,"Exceeds maximum number of days for rebooking in ",S9 S MAX=0 "RTN","SDCNP1A",11,0) Q "RTN","SDCNP1A",12,0) RBK S GDATE=S2,SC=S1,LEN=$P(SDP1,"^",6),A=DFN_"^"_LEN,(CDATE,DATE)=SDDT D OVR1,SDIN D ^SDAUT1 D:'MAX NRBK D:MAX ^SDAUT2,SDNP K SDIN Q "RTN","SDCNP1A",13,0) OVR1 N X S SL=$S($D(^SC(SC,"SL")):^("SL"),1:"") Q:'SL S X=$P(SL,U,6),SI=$S(X="":4,X<3:4,X:X,1:4),X=$P(SL,U,3),STARTDAY=$S($L(X):X,1:8),SDSTRTDT=$S(DT>DATE:DT,1:DATE),STIME=$S($D(^SC(SC,"SDP")):$P(^("SDP"),U,3),1:"0800"),SDSTRTDT=SDSTRTDT+2 "RTN","SDCNP1A",14,0) Q "RTN","SDCNP1A",15,0) SDIN I $D(^SC(SC,"I")) S SDIN=+^("I") Q "RTN","SDCNP1A",16,0) Q "RTN","SDCNP1A",17,0) SDNP S SDCL(SDAP)=SC_"^"_GDATE_"^"_NDATE S:NDATE SDCNT1=SDCNT1+1 Q "RTN","SDCNP1A",18,0) NRBK W !,"NO REBOOKING ALLOWED FOR ",$P(^SC(SC,0),"^") Q "RTN","SDCNP1A",19,0) DT S X1=$P(DT,"."),X2=10 D C^%DTC S Y=X D D^DIQ S D=Y_"//" Q "RTN","SDCNP1A",20,0) PROT S SDPRT=0 I $D(^SC(+I,"SDPROT")),$P(^("SDPROT"),U)="Y",'$D(^SC(+I,"SDPRIV",DUZ)) W !,*7,"Appt. in ",$P(^SC(+I,0),"^")," NOT CANCELLED ",!,"Access to this clinic is restricted to only privileged users!",*7 S SDPRT=1 Q "RTN","SDCNP1A",21,0) Q "RTN","SDCNP1A",22,0) ;SD/517 added new IF statement, changed For loop & added 2 new linetags "RTN","SDCNP1A",23,0) FLEN S (ZPL,SDSP)="" ;SD/517 "RTN","SDCNP1A",24,0) S COV=$S($P(^DPT(DFN,"S",NDT,0),"^",11)=1:" (COLLATERAL) ",1:"") I $D(^SC(SC,"S",NDT)) S ZL=0 F S ZL=$O(^SC(SC,"S",NDT,1,ZL)) Q:'ZL D "RTN","SDCNP1A",25,0) .I '$D(^SC(SC,"S",NDT,1,ZL,0)) D FLEN1 Q "RTN","SDCNP1A",26,0) .I +^SC(SC,"S",NDT,1,ZL,0)=DFN S APL=$P(^(0),U,2),SDSP=$P($G(^SC(SC,"S",NDT,1,ZL,"CONS")),U) "RTN","SDCNP1A",27,0) .Q "RTN","SDCNP1A",28,0) ;S COV=$S($P(^DPT(DFN,"S",NDT,0),"^",11)=1:" (COLLATERAL) ",1:"") I $D(^SC(SC,"S",NDT)) F ZL=0:0 S ZL=$O(^SC(SC,"S",NDT,1,ZL)) Q:ZL'>0 I +^(ZL,0)=DFN S APL=$P(^(0),"^",2),SDSP=$P($G(^SC(SC,"S",NDT,1,ZL,"CONS")),U) Q ;SD/478 "RTN","SDCNP1A",29,0) Q "RTN","SDCNP1A",30,0) ; "RTN","SDCNP1A",31,0) ;SD/517 added new linetag to kill any lingering "C" nodes "RTN","SDCNP1A",32,0) FLEN1 Q:'$D(^SC(SC,"S",NDT,1,ZL,"C")) "RTN","SDCNP1A",33,0) S DA(2)=SC,DA(1)=NDT,DA=ZL,DIK="^SC("_DA(2)_",""S"","_DA(1)_",1," D ^DIK "RTN","SDCNP1A",34,0) Q "RTN","SDCNP1A",35,0) ; "RTN","SDCNP1A",36,0) LOOP1 S SDCNT1=0 F L=0:0 S L=$O(^UTILITY($J,"SDCNP",L)) Q:L'>0 I ^(L)["JUST CANCELLED" S $P(SDCL(L),"^")=$P(^(L),"^",2),$P(SDCL(L),"^",2)=$P(^(L),"^") "RTN","SDCNP1A",37,0) K ^UTILITY($J) Q "RTN","SDCNP1A",38,0) SDLET N NDT,GDT "RTN","SDCNP1A",39,0) U IO D Q "RTN","SDCNP1A",40,0) F SDP=0:0 S SDP=$O(SDCL(SDP)) Q:SDP'>0 D "RTN","SDCNP1A",41,0) . S SDP1=SDCL(SDP),SDC=+SDP1,GDT=$P(SDP1,"^",2),NDT=$P(SDP1,"^",3),SDV1=$P(^SC(SDC,0),"^",15) "RTN","SDCNP1A",42,0) . D B I (SDB)!(SDK) Q "RTN","SDCNP1A",43,0) . S:'SDV1 SDV1=+$O(^DG(40.8,0)) "RTN","SDCNP1A",44,0) . D F S:SDLET ^UTILITY($J,SDLET,+A,GDT)=SDC_"^"_NDT "RTN","SDCNP1A",45,0) ;Remove extra page SD*650 "RTN","SDCNP1A",46,0) F SDLET=0:0 S SDLET=$O(^UTILITY($J,SDLET)) Q:SDLET'>0 F B0=0:0 S A1=B0,B0=$O(^UTILITY($J,SDLET,B0)) D:'B0 R Q:'B0 D:A1&(A1'=B0) R S A=B0 N SDFIRST S SDFIRST=1 D ^SDLT,APP "RTN","SDCNP1A",47,0) I $D(^UTILITY($J,"NO")) W @IOF,! F SC=0:0 S SC=$O(^UTILITY($J,"NO",SC)) Q:SC'>0 W !,$P(^SC(SC,0),"^")," Clinic is not assigned a letter",!! "RTN","SDCNP1A",48,0) E I $D(^TMP($J,"BADADD")) D BADADD^SDLT K ^TMP($J,"BADADD") I $E(IOST,1,2)="C-" S DIR(0)="E" D ^DIR K ^DIR(0) "RTN","SDCNP1A",49,0) ;I $G(SDB),SDB W !!,"BAD ADDRESS INDICATOR FOR THIS PATIENT. NO LETTER WILL BE PRINTED." S DIR(0)="E" D ^DIR K DIR(0) "RTN","SDCNP1A",50,0) I $G(SDK),'SDK W !!,"NO LETTER CAN BE PRINTED FOR THIS PATIENT." S DIR(0)="E" D ^DIR K DIR(0) "RTN","SDCNP1A",51,0) K A,SDCL D CLOSE^DGUTQ "RTN","SDCNP1A",52,0) Q K A1,SDFORM,SDLET,SDNDT,SDP1,SDV1,^UTILITY($J),SDB,SDK Q "RTN","SDCNP1A",53,0) F S SDFORM="" I $D(^DG(40.8,SDV1,"LTR")),^("LTR") S SDFORM=^("LTR") "RTN","SDCNP1A",54,0) S SDLET="" I $D(^SC(SDC,"LTR")) S:SDWH["P" SDLET=$P(^("LTR"),"^",4) S:SDWH'["P" SDLET=$P(^("LTR"),"^",3) "RTN","SDCNP1A",55,0) I 'SDLET S ^UTILITY($J,"NO",SDC)="" "RTN","SDCNP1A",56,0) Q "RTN","SDCNP1A",57,0) R I $D(^UTILITY($J,"R",SDLET,A1)) W !!,"The appointment(s) have been rescheduled as follows:",! F A2=0:0 S A2=$O(^UTILITY($J,"R",SDLET,A1,A2)) Q:A2'>0 S (X,SDX)=A2,SDC=+^(A2),A=A1,SDS=^DPT(DFN,"S",SDX,0) D WRAPP^SDLT K X,SDX "RTN","SDCNP1A",58,0) D REST^SDLT Q "RTN","SDCNP1A",59,0) APP F SDX=0:0 S SDX=$O(^UTILITY($J,SDLET,A,SDX)) Q:SDX'>0 S S=^DPT(+A,"S",SDX,0),SDC=+^(0) D WRAPP^SDLT I $P(^UTILITY($J,SDLET,A,SDX),"^",2) S ^UTILITY($J,"R",SDLET,A,$P(^UTILITY($J,SDLET,A,SDX),"^",2))=$P(^(SDX),"^") "RTN","SDCNP1A",60,0) Q "RTN","SDCNP1A",61,0) CKK I $L(SDDI)>4!($L(SDDM)>4) S SDERR=1 W !,"There is no appointment number ",$S($L(SDDI)>5:SDDI,1:SDDM) Q "RTN","SDCNP1A",62,0) Q "RTN","SDCNP1A",63,0) CKK1 F Z0=SDDI,SDDM Q:'SDDI!('SDDM&(SDDI-Z0)) S SDERR=0 S:$L(Z0)>5 SDERR=1 Q:SDERR S:$L(SDDI)<5 SDDI=+SDDI S:$L(SDDM)<5 SDDM=+SDDM I $L(Z0)>5!('$D(^UTILITY($J,"SDCNP",Z0,"CNT"))) S SDERR=1 Q "RTN","SDCNP1A",64,0) W:SDERR !,*7,"There is no appointment number ",Z0 H 2 Q "RTN","SDCNP1A",65,0) CKK2 F Z0=SDDI,SDDM Q:'SDDI!('SDDM&(SDDI-Z0)) S SDERR=0 S:$L(Z0)>5 SDERR=1 Q:SDERR S:$L(SDDI)<5 SDDI=+SDDI S:$L(SDDM)<5 SDDM=+SDDM I $L(Z0)>5!('$D(^UTILITY($J,"SDCNP2",DFN,Z0))) S SDERR=1 Q "RTN","SDCNP1A",66,0) W:SDERR !,*7,"There is no appointment number ",Z0 Q "RTN","SDCNP1A",67,0) B S SDB=$$BADADR^DGUTL3(+A) "RTN","SDCNP1A",68,0) S:SDB ^TMP($J,"BADADD",$P(^DPT(+A,0),"^"),+A)="" "RTN","SDCNP1A",69,0) CHECK S SDK=0 I $S('$D(^DPT(+A,.35)):1,$P(^(.35),"^",1)']"":1,1:0),$D(^DPT(+A,"S",GDT,0)),$S($P(^(0),"^",2)["N":1,$D(SDCP)&$P(^(0),"^",2)["C":1,1:0),$P(^(0),"^",14)=SDTIME!(SDTIME="*"),'$D(^DPT(+A,.1)) S SDK=1 "RTN","SDCNP1A",70,0) Q "RTN","SDM1A") 0^1^B131891737^B130744784 "RTN","SDM1A",1,0) SDM1A ;SF/GFT,ALB/TMP - MAKE APPOINTMENT ;JUN 21, 2017 "RTN","SDM1A",2,0) ;;5.3;Scheduling;**26,94,155,206,168,223,241,263,327,478,446,544,621,622,627,658,665,650**;Aug 13, 1993;Build 3 "RTN","SDM1A",3,0) ; "RTN","SDM1A",4,0) OK I $D(SDMLT) D ^SDM4 Q:X="^"!(SDMADE=2) "RTN","SDM1A",5,0) S ^SC(SC,"ST",$P(SD,"."),1)=S,^DPT(DFN,"S",SD,0)=SC,^SC(SC,"S",SD,0)=SD S:'$D(^DPT(DFN,"S",0)) ^(0)="^2.98P^^" S:'$D(^SC(SC,"S",0)) ^(0)="^44.001DA^^" L "RTN","SDM1A",6,0) S1 L +^SC(SC,"S",SD,1):$G(DILOCKTM,5) W:'$T "Another user is editing this record. Trying again.",! G:'$T S1 F SDY=1:1 I '$D(^SC(SC,"S",SD,1,SDY)) S:'$D(^(0)) ^(0)="^44.003PA^^" S ^(SDY,0)=DFN_U_(+SL)_"^^^^"_$G(DUZ)_U_DT L -^SC(SC,"S",SD,1) Q "RTN","SDM1A",7,0) I SM S ^("OB")="O" ;NAKED REFERENCE - ^SC(IFN,"S",Date,1,SDY,"OB") "RTN","SDM1A",8,0) I $D(^SC(SC,"RAD")),^("RAD")="Y"!(^("RAD")=1) S ^SC("ARAD",SC,SD,DFN)="" "RTN","SDM1A",9,0) S SDINP=$$INP^SDAM2(DFN,SD) "RTN","SDM1A",10,0) ;-- added sub-category "RTN","SDM1A",11,0) S COV=3,SDYC="",COV=$S(COLLAT=1:1,1:3),SDYC=$S(COLLAT=7:1,1:"") "RTN","SDM1A",12,0) S:SD
DT,$D(^DPT(DFN,.321)) D EN1^SDM3 "RTN","SDM1A",27,0) ;Wait List SD*5.3*263 "RTN","SDM1A",28,0) ;I '$D(SDWLLIST) D ^SDWLR ;replaced with sd/372, see below "RTN","SDM1A",29,0) EWLCHK ;check if patient has any open EWL entries (SD/372) "RTN","SDM1A",30,0) ;get appointment "RTN","SDM1A",31,0) K ^TMP($J,"SDAMA301"),^TMP($J,"APPT") "RTN","SDM1A",32,0) D APPT^SDWLEVAL(DFN,SD,SC) "RTN","SDM1A",33,0) Q:'$D(^TMP($J,"APPT")) "RTN","SDM1A",34,0) N SDWL,SDWLF,SDWLIST S SDWL="" S SDWLF=0 ;alb/sat 627 "RTN","SDM1A",35,0) N SDEV D EN^SDWLEVAL(DFN,.SDEV) I SDEV,$L(SDEV(1))>0 D "RTN","SDM1A",36,0) .K ^TMP("SDWLPL",$J),^TMP($J,"SDWLPL") "RTN","SDM1A",37,0) .D INIT^SDWLPL(DFN,"M") "RTN","SDM1A",38,0) .Q:'$D(^TMP($J,"SDWLPL")) "RTN","SDM1A",39,0) .D LIST^SDWLPL("M",DFN) "RTN","SDM1A",40,0) .D SDGET(.SDWLIST) ;alb/sat 627 "RTN","SDM1A",41,0) .F Q:'$D(^TMP($J,"SDWLPL")) N SDR D ANSW^SDWLEVAL(1,.SDR) S:SDR SDWLF=1 I 'SDR D LIST^SDWLPL("M",DFN) D "RTN","SDM1A",42,0) ..F N SDR D ANSW^SDWLEVAL(0,.SDR) Q:'$D(^TMP($J,"SDWLPL")) I 'SDR W !,"MUST ENTER A REASON NOT TO DISPOSITION MATCHED EWL ENTRY",! ;alb/sat665 remove S SDWLF=1 "RTN","SDM1A",43,0) .S:+SDWLF SDWL=$$SDWL(.SDWLIST) ;alb/sat 627 "RTN","SDM1A",44,0) ;update SDEC APPOINTMENT file 409.84 ;alb/sat 627 "RTN","SDM1A",45,0) N SDECAR,SDREC,SDRES "RTN","SDM1A",46,0) S SDREC="" "RTN","SDM1A",47,0) I $G(CNSLTLNK)="",SDWL="" S SDREC=$$RECALL^SDECUTL(DFN,SD,SDSC) ;check if recall appt "RTN","SDM1A",48,0) I SDWL="",$G(CNSLTLNK)="",SDREC="" S SDECAR=$$SDWLA(DFN,SD,SDSC,SDDATE,$G(SDAPTYP),$G(SDECANS)) ;alb/sat 665 add SDECANS "RTN","SDM1A",49,0) K SDECANS "RTN","SDM1A",50,0) S SDRES=$$GETRES^SDECUTL(SC) "RTN","SDM1A",51,0) S SDAPTYP=$G(SDAPTYP) S:SDAPTYP="" SDAPTYP=$$GET1^DIQ(44,SC_",",2507,"I") "RTN","SDM1A",52,0) ;alb/sat 658 - moved below OTHER INFO prompt to store in NOTE field of 409.84 "RTN","SDM1A",53,0) ;D SDECADD^SDEC07(SD,$$FMADD^XLFDT(SD,,,+SL),DFN,SDRES,0,SDDATE,"",$S(+SDWL:"E|"_SDWL,+$G(CNSLTLNK):"C|"_CNSLTLNK,+SDREC:"R|"_SDREC,+SDECAR:"A|"_SDECAR,1:""),,SC,,,,SDAPTYP) ;ADD SDEC APPOINTMENT ENTRY "RTN","SDM1A",54,0) ;end addition/modification ;alb/sat 627 "RTN","SDM1A",55,0) ;CREATE 120 FLAG IF APPLICABLE; appt created "RTN","SDM1A",56,0) FLG N SDST S SDST=$G(^TMP($J,"APPT",1)) I +SDST>0 D "RTN","SDM1A",57,0) .Q ; sd/446 "RTN","SDM1A",58,0) .N SDT,SDDES,SDPAR,SDDES1,SDT1 S SDPAR=0 S SDT=+SDST,SDDES=$P(SDST,U,17) I SDDES="" S SDDES=DT ; today's date if no desired date "RTN","SDM1A",59,0) .S X=SDT D H^%DTC S SDT1=%H "RTN","SDM1A",60,0) .S X=SDDES D H^%DTC S SDDES1=%H "RTN","SDM1A",61,0) .I SDT1-SDDES1>120 N SD120,SD120A S SD120=1,SD120A=1 D "RTN","SDM1A",62,0) ..; CREATE ewl eN SDPR S SDPR=$S(SDDES=DT:"A",1:"F") entry with 120 flag "RTN","SDM1A",63,0) ..N SDPR S SDPR=$S(SDDES=DT:"A",1:"F") ;10 "RTN","SDM1A",64,0) ..N SDWLIN S SDWLIN=+$P(SDST,U,15) ;2 "RTN","SDM1A",65,0) ..N SDWLSCPR S SDWLSCPR=0 I +$P(SDST,U,10)=11 S SDWLSCPR=1 ;15 "RTN","SDM1A",66,0) ..N SC,SDWLSCL S SC=+$P(SDST,U,2) D "RTN","SDM1A",67,0) ...I $D(^SDWL(409.32,"B",SC)) S SDWLSCL=$O(^SDWL(409.32,"B",SC,"")) Q ;8 "RTN","SDM1A",68,0) ...;create 409.32 entry "RTN","SDM1A",69,0) ...N DA,DIC S DIC(0)="LX",X=SC,DIC="^SDWL(409.32," D FILE^DICN "RTN","SDM1A",70,0) ...S SDWLSCL=DA "RTN","SDM1A",71,0) ...S DIE="^SDWL(409.32," "RTN","SDM1A",72,0) ...S DR=".02////^S X=SDWLIN" D ^DIE "RTN","SDM1A",73,0) ...S DR="1////^S X=DT" "RTN","SDM1A",74,0) ...S DR=DR_";2////^S X=DUZ" "RTN","SDM1A",75,0) ...D ^DIE S SDPAR=1 "RTN","SDM1A",76,0) ..N DA S DIC(0)="LX",(X,SDWLDFN)=+$P(SDST,U,4),X=SDWLDFN,DIC="^SDWL(409.3," D FILE^DICN "RTN","SDM1A",77,0) ..F L +^SDWL(409.3,DA):$G(DILOCKTM,5) Q:$T D "RTN","SDM1A",78,0) ...I '$T W !,"Unable to acquire a lock on the Wait List file" Q "RTN","SDM1A",79,0) ..; Update EWL variables. "RTN","SDM1A",80,0) ..S SDWLDA=DA D EN^SDWLE11 ; get enrollee both SDWLDA and SDWLDFN have to be "RTN","SDM1A",81,0) ..N SDWLCM S SDWLCM=" > 120 days; appt created" "RTN","SDM1A",82,0) ..N SDWLSCPG S SDWLSCPG=$S($P($G(^DPT(SDWLDFN,.3)),U,1)="Y":$P(^(.3),U,2),1:"") "RTN","SDM1A",83,0) ..S DR="1////^S X=DT" "RTN","SDM1A",84,0) ..S DR=DR_";2////^S X=SDWLIN" "RTN","SDM1A",85,0) ..S DR=DR_";4////^S X=4" "RTN","SDM1A",86,0) ..S DR=DR_";8////^S X=SDWLSCL" "RTN","SDM1A",87,0) ..S DR=DR_";9////^S X=DUZ" "RTN","SDM1A",88,0) ..S DR=DR_";10////^S X=SDPR" "RTN","SDM1A",89,0) ..S DR=DR_";11////^S X=2" ; by patient for this entry to avoid asking for provider "RTN","SDM1A",90,0) ..S DR=DR_";14////^S X=SDWLSCPG" "RTN","SDM1A",91,0) ..S DR=DR_";15////^S X=SDWLSCPR" "RTN","SDM1A",92,0) ..S DR=DR_";22////^S X=SDDES" "RTN","SDM1A",93,0) ..S DR=DR_";23////^S X=""O""" "RTN","SDM1A",94,0) ..S DR=DR_";25////^S X=SDWLCM" "RTN","SDM1A",95,0) ..S DR=DR_";36////^S X=SD120" "RTN","SDM1A",96,0) ..S DR=DR_";39////^S X=SD120A" "RTN","SDM1A",97,0) ..S DIE="^SDWL(409.3," "RTN","SDM1A",98,0) ..D ^DIE "RTN","SDM1A",99,0) ..L -^SDWL(409.3,DA) "RTN","SDM1A",100,0) ..D MESS^SDWL120(SDWLDFN,SC,SDT,SDPAR) "RTN","SDM1A",101,0) ;continue appointment entry process "RTN","SDM1A",102,0) ORD S %=2 W !,"WANT PATIENT NOTIFIED OF LAB,X-RAY, OR EKG STOPS" D YN^DICN I '% W !," Enter YES to notify patient on appt. letter of LAB, X-RAY, or EKG stops" G ORD "RTN","SDM1A",103,0) I '(%-1) D ORDY^SDM3 "RTN","SDM1A",104,0) OTHER R !," OTHER INFO: ",D:DTIME I D["^" W !,*7,"'^' not allowed - hit return if no 'OTHER INFO' is to be entered" G OTHER "RTN","SDM1A",105,0) S TMPD=D I $L(D)>150 D MSG^SDMM G OTHER ;SD/478 "RTN","SDM1A",106,0) I D]"",D?."?"!(D'?.ANP) W " ENTER LAB, SCAN, ETC." G OTHER "RTN","SDM1A",107,0) I $L($G(^SC(SC,"S",SD,1,SDY,0)))+$L(D)+$L(DT)+$S($D(DUZ):$L(DUZ),1:0)>250 D MSG^SDMM G OTHER ; sd/446 "RTN","SDM1A",108,0) ;S $P(^(0),"^",4)=D,$P(^(0),U,6,7)=$S($D(DUZ):DUZ,1:"")_U_DT ;NAKED REFERENCE - ^SC(IFN,"S",Date,1,SDY,0) "RTN","SDM1A",109,0) S $P(^(0),"^",4)=D ;NAKED REFERENCE - ^SC(IFN,"S",Date,1,SDY,0) 544 moved DUZ&DT to tag S1. "RTN","SDM1A",110,0) S:$G(SL)="" SL=$G(^SC(+SC,"SL")) ;alb/sat 658 - SL gets killed in SDM3 if 'WANT PATIENT NOTIFIED OF LAB,X-RAY, OR EKG STOPS' is answered with Y "RTN","SDM1A",111,0) D SDECADD^SDEC07(SD,$$FMADD^XLFDT(SD,,,+SL),DFN,SDRES,0,SDDATE,"",$S(+SDWL:"E|"_SDWL,+$G(CNSLTLNK):"C|"_CNSLTLNK,+SDREC:"R|"_SDREC,+SDECAR:"A|"_SDECAR,1:""),,SC,$G(D),,,SDAPTYP) ;ADD SDEC APPOINTMENT ENTRY ;alb/sat 658 moved from above "RTN","SDM1A",112,0) D:$D(TMP) LINK^SDCNSLT(SC,SDY,SD,CNSLTLNK) ;SD/478 "RTN","SDM1A",113,0) D:$D(TMP) EDITCS^SDCNSLT(SD,TMPD,TMPYCLNC,CNSLTLNK) ;SD/478 "RTN","SDM1A",114,0) K TMP ;SD/478 "RTN","SDM1A",115,0) XR I $S('$D(^SC(SC,"RAD")):1,^("RAD")="Y":0,^("RAD")=1:0,1:1) S %=2 W !,"WANT PREVIOUS X-RAY RESULTS SENT TO CLINIC" D YN^DICN G:'% HXR I '(%-1) S ^SC("ARAD",SC,SD,DFN)="" "RTN","SDM1A",116,0) SDMM S SDEMP=0 I COLLAT=7 S:SDEC'=SDCOL SDEMP=SDCOL G OV "RTN","SDM1A",117,0) D ELIG^VADPT I $O(VAEL(1,0))>0 D ELIG^SDM4:"369"[SDAPTYP S SDEMP=$S(SDDECOD:SDDECOD,1:SDEMP) "RTN","SDM1A",118,0) OV Q:$D(SDZM) K SDQ1,SDEC,SDCOL I +SDEMP S $P(^SC(SC,"S",SD,1,SDY,0),"^",10)=+SDEMP "RTN","SDM1A",119,0) S SDMADE=1 D EVT "RTN","SDM1A",120,0) LET ; SD*5.3*622 - help user print the PRE-APPT letter for a patient "RTN","SDM1A",121,0) ; check for a PRE-APPT letter defined and if none, don't issue a device prompt "RTN","SDM1A",122,0) N SDFN ; new SDFN to see the patient prompt next time "RTN","SDM1A",123,0) S %=2 W !!,"WANT TO PRINT THE PRE-APPOINTMENT LETTER" D YN^DICN I %=0 W !,"RESPOND YES (Y) OR NO (N)" G:'% LET "RTN","SDM1A",124,0) I (%=2)!(%=-1) Q "RTN","SDM1A",125,0) I $P($G(^SC(SC,"LTR")),U,2)="" D Q "RTN","SDM1A",126,0) . W $C(7),!!,"PATIENT "_$P(^DPT(DFN,0),U,1)," ",$P(^(0),U,9)," HAS FUTURE APPTS., but" "RTN","SDM1A",127,0) . W !,$P(^SC(SC,0),U,1)_" is not assigned a PRE-APPOINTMENT LETTER",! "RTN","SDM1A",128,0) . S DIR(0)="E" D ^DIR K DIR "RTN","SDM1A",129,0) ; "RTN","SDM1A",130,0) ; pre-define letter type (P), the division, date for appt, etc. "RTN","SDM1A",131,0) S (SDBD,SDED)=SDTTM,L0="P",SD9=0,VAUTNALL=1,VAUTNI=2,S1="P",SDLT=1,SDV1=1,SDFORM="" "RTN","SDM1A",132,0) S L2=$S(L0="P":"^SDL1",1:"^SDL1"),J=SDBD "RTN","SDM1A",133,0) S (A,SDFN,S)=DFN,L="^SDL1",SDCL=+$P(^SC(SC,0),U,1),SDC=SC,SDX=SDTTM "RTN","SDM1A",134,0) S SDLET=$P(^SC(SC,"LTR"),U,2) ; letter IEN "RTN","SDM1A",135,0) S SDLET1=SDLET "RTN","SDM1A",136,0) I SDY["DPT(" S SDAMTYP="P",SDFN=+SDY "RTN","SDM1A",137,0) I SDY["SC(" S SDAMTYP="C",SDCLN=+SDY "RTN","SDM1A",138,0) ; prepare to queue the letter if the user so desires "RTN","SDM1A",139,0) N %ZIS,POP,ZTDESC,ZTRTN,ZTSAVE "RTN","SDM1A",140,0) S %ZIS("B")="",POP=0,%ZIS="MQ" D ^%ZIS Q:POP "RTN","SDM1A",141,0) I $D(IO("Q")) S ZTRTN="QUE^SDM1A",ZTDESC="PRINT PRE-APPT LETTER",ZTSAVE("*")="" D ^%ZTLOAD,HOME^%ZIS K IO("Q") Q "RTN","SDM1A",142,0) D QUE ; print right away without getting into the queue "RTN","SDM1A",143,0) D HOME^%ZIS "RTN","SDM1A",144,0) Q "RTN","SDM1A",145,0) ; "RTN","SDM1A",146,0) QUE ; execute whether by queue or immediate print request "RTN","SDM1A",147,0) U IO "RTN","SDM1A",148,0) N SDFIRST S SDFIRST=1 ; Flag to determine first page SD*650 "RTN","SDM1A",149,0) D PRT^SDLT,WRAPP^SDLT "RTN","SDM1A",150,0) ; if there are x-ray, lab, or ekg appts, print them too "RTN","SDM1A",151,0) S SDATA=$G(^DPT(DFN,"S",SDX,0)) "RTN","SDM1A",152,0) I $D(SDATA) F B=3,4,5 D "RTN","SDM1A",153,0) . S SDCL=$S(B=3:"LAB",B=4:"XRAY",1:"EKG") "RTN","SDM1A",154,0) . S SDX=$P($G(SDATA),U,B) "RTN","SDM1A",155,0) . S SC=SDCL Q:$G(SDX)="" D FORM^SDLT "RTN","SDM1A",156,0) ; "RTN","SDM1A",157,0) D REST^SDLT "RTN","SDM1A",158,0) D ^%ZISC "RTN","SDM1A",159,0) Q ; SD*5.3*622 - end of changes "RTN","SDM1A",160,0) ; "RTN","SDM1A",161,0) HXR W !," Enter YES to have previous XRAY results sent to the clinic" G XR "RTN","SDM1A",162,0) Q "RTN","SDM1A",163,0) CS S SDCS=+$P(^SC(+SC,0),"^",7) I $S('$D(^DIC(40.7,SDCS,0)):1,'$P(^(0),"^",3):0,1:$P(^(0),"^",3)'>DT) W !!,*7,"** WARNING - CLINIC HAS AN INVALID OR INACTIVE STOP CODE!!!",!! "RTN","SDM1A",164,0) S SDCS=+$P(^SC(+SC,0),"^",18) I $S('SDCS:0,'$D(^DIC(40.7,SDCS,0)):1,'$P(^(0),"^",3):0,1:$P(^(0),"^",3)'>DT) W !!,*7,"** WARNING - CLINIC HAS AN INVALID OR INACTIVE CREDIT STOP CODE!!!",!! "RTN","SDM1A",165,0) K SDCS Q "RTN","SDM1A",166,0) STATUS(SDCL,SDINP,SDT) ; -- determine status for NEW appts "RTN","SDM1A",167,0) Q $S(SDINP]"":SDINP,$$CHK(.SDCL,.SDT):"NT",1:"") "RTN","SDM1A",168,0) CHK(SDCL,SDT) ; -- should appt be NT'ed "RTN","SDM1A",169,0) ; -- non-count clinic check := don't NT appt "RTN","SDM1A",170,0) ; -- appt update executed := need to NT appt "RTN","SDM1A",171,0) ; -- otherwise := don't NT appt "RTN","SDM1A",172,0) Q $S($P($G(^SC(SDCL,0)),U,17)="Y":0,$D(^SDD(409.65,"AUPD",$P(SDT,"."))):1,1:0) "RTN","SDM1A",173,0) EVT ; -- separate tag if need to NEW vars "RTN","SDM1A",174,0) D MAKE^SDAMEVT(DFN,SD,SC,SDY,0) "RTN","SDM1A",175,0) Q "RTN","SDM1A",176,0) REQ(SDT) ; -- which is required check in(CI) or out(CO) "RTN","SDM1A",177,0) Q $S($$REQDT()>SDT:"CI",1:"CO") "RTN","SDM1A",178,0) REQDT() ; -- co required date "RTN","SDM1A",179,0) Q $S($P(^DG(43,1,"SCLR"),U,23):$P(^("SCLR"),U,23),1:2931001) "RTN","SDM1A",180,0) COCMP(DFN,SDT) ; -- date CO completed "RTN","SDM1A",181,0) Q $P($G(^SCE(+$P($G(^DPT(DFN,"S",SDT,0)),U,20),0)),U,7) "RTN","SDM1A",182,0) CI(SDCL,SDT,SDDA,SDACT) ; -- ok to update DPT "RTN","SDM1A",183,0) N C "RTN","SDM1A",184,0) I '$$CHK(.SDCL,.SDT) G CIQ "RTN","SDM1A",185,0) I $$REQ(SDT)'="CI" G CIQ "RTN","SDM1A",186,0) I SDACT="SET",$D(^DPT(+^SC(SDCL,"S",SDT,1,SDDA,0),"S",SDT,0)),$P(^(0),U,2)="NT" S $P(^(0),U,2)="" "RTN","SDM1A",187,0) I SDACT="KILL" S C=$G(^SC(SDCL,"S",SDT,1,SDDA,"C")) I $D(^DPT(+$G(^(0)),"S",SDT,0)),$P(^(0),U,2)="",'$P(C,U,3) S $P(^(0),U,2)="NT" "RTN","SDM1A",188,0) CIQ Q "RTN","SDM1A",189,0) CO(SDCL,SDT,SDDA,SDACT) ; -- ok to update DPT "RTN","SDM1A",190,0) N DFN,C "RTN","SDM1A",191,0) I '$$CHK(.SDCL,.SDT) G COQ "RTN","SDM1A",192,0) I $$REQ(.SDT)'="CO" D G COQ "RTN","SDM1A",193,0) .I SDACT="SET",$D(^DPT(+^SC(SDCL,"S",SDT,1,SDDA,0),"S",SDT,0)),$P(^(0),U,2)="NT" S $P(^(0),U,2)="" "RTN","SDM1A",194,0) .I SDACT="KILL" S C=$G(^SC(SDCL,"S",SDT,1,SDDA,"C")) I $D(^DPT(+$G(^(0)),"S",SDT,0)),$P(^(0),U,2)="",'C S $P(^(0),U,2)="NT" "RTN","SDM1A",195,0) S DFN=+^SC(SDCL,"S",SDT,1,SDDA,0) "RTN","SDM1A",196,0) D UPD(.DFN,.SDT,$$COCMP(.DFN,.SDT),$S(SDACT="SET":X,1:"")) "RTN","SDM1A",197,0) COQ Q "RTN","SDM1A",198,0) UPD(DFN,SDT,SDCOCMP,SDCODT) ; -- update status "RTN","SDM1A",199,0) N Y "RTN","SDM1A",200,0) I $D(^DPT(DFN,"S",SDT,0)) S Y=$P(^(0),U,2) D "RTN","SDM1A",201,0) .I 'SDCOCMP!('SDCODT) S:Y="" $P(^DPT(DFN,"S",SDT,0),U,2)="NT" Q "RTN","SDM1A",202,0) .S:Y="NT" $P(^DPT(DFN,"S",SDT,0),U,2)="" "RTN","SDM1A",203,0) Q "RTN","SDM1A",204,0) OE(SDOE,SDACT) ; -- called by x-ref on co completed field(#.07) in ^SCE "RTN","SDM1A",205,0) N Y S Y=^SCE(SDOE,0) "RTN","SDM1A",206,0) I $P(Y,U,8)'=1 G OEQ "RTN","SDM1A",207,0) I $$REQ(+Y)'="CO" G OEQ "RTN","SDM1A",208,0) I '$$CANT(+$P(Y,U,2),+Y,SDOE),'$$CHK(+$P(Y,U,4),+Y) G OEQ "RTN","SDM1A",209,0) D UPD(+$P(Y,U,2),+Y,$S(SDACT="SET":X,1:""),$P($G(^SC(+$P(Y,U,4),"S",+Y,1,+$P(Y,U,9),"C")),U,3)) "RTN","SDM1A",210,0) OEQ Q "RTN","SDM1A",211,0) CONF(SDSRTY,SDSRFU,DFN,SDT,SC) ;Confirm scheduling request type "RTN","SDM1A",212,0) ;Input: SDSRTY=request type "RTN","SDM1A",213,0) ;Input: SDSRFU=follow-up indicator "RTN","SDM1A",214,0) ;Input: DFN=patient ien "RTN","SDM1A",215,0) ;Input: SDT=appointment date/time "RTN","SDM1A",216,0) ;Input: SC=clinic ifn "RTN","SDM1A",217,0) N DIR,DIE,DA,DR,SDX,SDY,X,Y "RTN","SDM1A",218,0) S DIR(0)="Y",DIR("B")="YES" "RTN","SDM1A",219,0) S DIR("A")="THIS APPOINTMENT IS MARKED AS '"_SDSRTY(0)_"', IS THIS CORRECT" "RTN","SDM1A",220,0) W ! D ^DIR Q:$D(DTOUT)!$D(DUOUT) "RTN","SDM1A",221,0) I 'Y S SDX='SDSRTY,SDX(0)=$$TXRT(.SDX) W !!,"THIS APPOINTMENT HAS NOW BEEN MARKED AS '"_$S('SDSRTY:"",1:"NOT ")_"NEXT AVAILABLE'." "RTN","SDM1A",222,0) ;S DIR("A")="THIS APPOINTMENT IS DEFINED AS '"_$S(SDSRFU:"FOLLOW-UP",1:"OTHER THAN FOLLOW-UP")_"', OK" "RTN","SDM1A",223,0) ;W ! D ^DIR Q:$D(DTOUT)!$D(DUOUT) "RTN","SDM1A",224,0) ;I 'Y S SDY='SDSRFU W " (changed)" "RTN","SDM1A",225,0) Q:'$D(SDX) S DR="" "RTN","SDM1A",226,0) I $D(SDX) S DR="25///^S X=$P(SDX,U,2);26///^S X=$$NAVA^SDMANA(SC,SDT,$P(SDX,U,2))" "RTN","SDM1A",227,0) ;I $D(SDY) S:$L(DR) DR=DR_";" S DR=DR_"26///^S X=SDY" "RTN","SDM1A",228,0) S DA=SDT,DA(1)=DFN "RTN","SDM1A",229,0) S DIE="^DPT(DA(1),""S""," D ^DIE "RTN","SDM1A",230,0) Q "RTN","SDM1A",231,0) TXRT(SDSRTY) ;Transform request type "RTN","SDM1A",232,0) ;Input: SDSRTY=variable to return request type (pass by reference) "RTN","SDM1A",233,0) ;Output: external text for SDSRTY(0) "RTN","SDM1A",234,0) I SDSRTY S SDSRTY=SDSRTY_U_"N" Q "NEXT AVAILABLE" "RTN","SDM1A",235,0) S SDSRTY=SDSRTY_U_"O" Q "NOT NEXT AVAILABLE" "RTN","SDM1A",236,0) CANT(DFN,SDT,SDOE) ;Determine if clinic appt. has been marked "NT" "RTN","SDM1A",237,0) ;Output: '1' if appt. points to encounter and is marked "NT", otherwise '0' "RTN","SDM1A",238,0) N SDAPP S SDAPP=$G(^DPT(DFN,"S",SDT,0)) "RTN","SDM1A",239,0) Q:$P(SDAPP,U,20)'=SDOE 0 "RTN","SDM1A",240,0) Q $P(SDAPP,U,2)="NT" "RTN","SDM1A",241,0) SDGET(SDWLIST) ;build array of wait list entries that are in ^TMP($J,"SDWLPL") "RTN","SDM1A",242,0) N SDI "RTN","SDM1A",243,0) K SDWLIST "RTN","SDM1A",244,0) S SDI="" F S SDI=$O(^TMP($J,"SDWLPL",SDI)) Q:SDI="" D "RTN","SDM1A",245,0) .S SDWLIST(+$G(^TMP($J,"SDWLPL",SDI)))="" "RTN","SDM1A",246,0) Q "RTN","SDM1A",247,0) ; -- Variable doc for above tags "RTN","SDM1A",248,0) ; SDCL := file 44 ien "RTN","SDM1A",249,0) ; SDT := appt date/time "RTN","SDM1A",250,0) ; DFN := file 2 ien "RTN","SDM1A",251,0) ; SDDA := ^SC(SDCL,"S",SDT,1,SDDA,0) "RTN","SDM1A",252,0) ; SDACT := current x-ref action 'set' or 'kill' "RTN","SDM1A",253,0) ; SDCOCMP := check out completed date "RTN","SDM1A",254,0) ; SDCODT := check out date/time "RTN","SDM1A",255,0) ; SDOE := Outpatient Encounter ien "RTN","SDM1A",256,0) ; SDINP := inpatient status ('I' or null) "RTN","SDM1A",257,0) ; SDINP := inpatient status ('I' or null) "RTN","SDM1A",258,0) ; "RTN","SDM1A",259,0) SDWL(SDWLIST) ;determine EWL that was closed for this appointment ;alb/sat SD/627 "RTN","SDM1A",260,0) N SDI "RTN","SDM1A",261,0) S SDI="" F S SDI=$O(^TMP($J,"SDWLPL",SDI)) Q:SDI="" D "RTN","SDM1A",262,0) .I $D(SDWLIST(+$G(^TMP($J,"SDWLPL",SDI)))) K SDWLIST(+$G(^TMP($J,"SDWLPL",SDI))) "RTN","SDM1A",263,0) Q $O(SDWLIST(0)) "RTN","SDM1A",264,0) SDWLA(DFN,SD,SDSC,SDDATE,SDAPTYP,SDECANS) ;add SDEC APPT REQUEST entry ;alb/sat SD/627 ;alb/sat 665 add SDECANS "RTN","SDM1A",265,0) ;INPUT: "RTN","SDM1A",266,0) ; DFN "RTN","SDM1A",267,0) ; SD = appointment date/time in fm format "RTN","SDM1A",268,0) ; SDSC = clinic code pointer to HOSPITAL LOCATION file "RTN","SDM1A",269,0) ; SDDATE = desired date of appointment "RTN","SDM1A",270,0) ; SDAPTYP = pointer to APPOINTMENT TYPE file 409.1 "RTN","SDM1A",271,0) ; SDECANS = service connected condition Y=yes N=no from SDM4 ;alb/sat 665 "RTN","SDM1A",272,0) N SDECINP,SDWLSTAT,SDARIEN,SDWLRET,X "RTN","SDM1A",273,0) S SDAPTYP=$G(SDAPTYP) "RTN","SDM1A",274,0) S SDECANS=$G(SDECANS) ;alb/sat 665 "RTN","SDM1A",275,0) ;get clinic location name "RTN","SDM1A",276,0) K ^TMP("SDEC50",$J,"PCSTGET") "RTN","SDM1A",277,0) D PCSTGET^SDEC(.SDWLRET,DFN,SDSC) "RTN","SDM1A",278,0) S SDWLSTAT=$P($P($G(^TMP("SDEC50",$J,"PCSTGET",1)),$C(30),1),U,2) "RTN","SDM1A",279,0) K ^TMP("SDEC50",$J,"PCSTGET") "RTN","SDM1A",280,0) ;set appt request entry "RTN","SDM1A",281,0) S SDECINP(1)="" "RTN","SDM1A",282,0) S SDECINP(2)=DFN ;patient "RTN","SDM1A",283,0) S SDECINP(3)=$E($$NOW^XLFDT,1,12) ;originating date/time "RTN","SDM1A",284,0) S SDECINP(4)=DUZ(2) ;institution "RTN","SDM1A",285,0) S SDECINP(5)="APPOINTMENT" ;wait list type - specific clinic "RTN","SDM1A",286,0) S SDECINP(6)=SDSC ;clinic "RTN","SDM1A",287,0) S SDECINP(7)=DUZ ;originating user "RTN","SDM1A",288,0) S SDECINP(8)="ASAP" ;priority "RTN","SDM1A",289,0) S SDECINP(9)="PATIENT" ;requested by "RTN","SDM1A",290,0) S SDECINP(11)=SDDATE ;desired date of appointment "RTN","SDM1A",291,0) ;S SDECINP(16)=$S(SDWLSTAT="YES":"ESTABLISHED",1:"NEW") "RTN","SDM1A",292,0) S SDECINP(14)="NO" ;multiple appointment RTC "RTN","SDM1A",293,0) S SDECINP(15)=0 "RTN","SDM1A",294,0) S SDECINP(16)=0 "RTN","SDM1A",295,0) S:SDECANS'="" SDECINP(18)=$S(SDECANS="Y":"YES",1:0) ;alb/sat 665 "RTN","SDM1A",296,0) S:+SDAPTYP SDECINP(22)=+SDAPTYP ;appointment type "RTN","SDM1A",297,0) K SDWLRET "RTN","SDM1A",298,0) S SDWLRET="" "RTN","SDM1A",299,0) D ARSET1^SDEC(.SDWLRET,.SDECINP) "RTN","SDM1A",300,0) S SDARIEN=$P($P(SDWLRET,$C(30),2),U,1) "RTN","SDM1A",301,0) S SDWLRET="" "RTN","SDM1A",302,0) Q:'$D(^SDEC(409.85,+SDARIEN,0)) "" "RTN","SDM1A",303,0) ;close appt request entry "RTN","SDM1A",304,0) K INP "RTN","SDM1A",305,0) S INP(1)=SDARIEN "RTN","SDM1A",306,0) S INP(2)="REMOVED/SCHEDULED-ASSIGNED" "RTN","SDM1A",307,0) S INP(3)=DUZ "RTN","SDM1A",308,0) S INP(4)=$P(SD,".",1) "RTN","SDM1A",309,0) D ARCLOSE1^SDEC(.SDWLRET,.INP) "RTN","SDM1A",310,0) Q SDARIEN "VER") 8.0^22.2 "^DD",409.68,409.68,.01,0) DATE^RDI^^0;1^S %DT="ESTX" D ^%DT S X=Y K:Y<1 X "^DD",409.68,409.68,.01,1,0) ^.1 "^DD",409.68,409.68,.01,1,1,0) 409.68^B "^DD",409.68,409.68,.01,1,1,1) S ^SCE("B",$E(X,1,30),DA)="" "^DD",409.68,409.68,.01,1,1,2) K ^SCE("B",$E(X,1,30),DA) "^DD",409.68,409.68,.01,1,2,0) 409.68^ADFN1^MUMPS "^DD",409.68,409.68,.01,1,2,1) S:$P(^SCE(DA,0),U,2) ^SCE("ADFN",$P(^SCE(DA,0),U,2),X,DA)="" "^DD",409.68,409.68,.01,1,2,2) K:$P(^SCE(DA,0),U,2) ^SCE("ADFN",$P(^SCE(DA,0),U,2),X,DA) "^DD",409.68,409.68,.01,1,2,"%D",0) ^.101^4^4^3160629^^ "^DD",409.68,409.68,.01,1,2,"%D",1,0) "^DD",409.68,409.68,.01,1,2,"%D",2,0) This cross reference is by patient DFN and the outpatient encounter date. "^DD",409.68,409.68,.01,1,2,"%D",3,0) The PATIENT(#.02) field also has a companion cross reference to set this "^DD",409.68,409.68,.01,1,2,"%D",4,0) compound cross reference. "^DD",409.68,409.68,.01,1,2,"DT") 2930429 "^DD",409.68,409.68,.01,1,3,0) 409.68^ACG1^MUMPS "^DD",409.68,409.68,.01,1,3,1) N SD0 S SD0=$G(^SCE(DA,0)) IF $P(SD0,U,10)=10 S ^SCE("ACG",+X,DA)="" "^DD",409.68,409.68,.01,1,3,2) N SD0 S SD0=$G(^SCE(DA,0)) IF $P(SD0,U,10)=10 K ^SCE("ACG",+X,DA) "^DD",409.68,409.68,.01,1,3,"%D",0) ^^2^2^2970827^ "^DD",409.68,409.68,.01,1,3,"%D",1,0) Used to quickly find entries that have a 'computer generated' appointment "^DD",409.68,409.68,.01,1,3,"%D",2,0) type. "^DD",409.68,409.68,.01,1,3,"DT") 2970827 "^DD",409.68,409.68,.01,1,4,0) 409.68^AG1^MUMPS "^DD",409.68,409.68,.01,1,4,1) N SDCG S SDCG=$G(^SCE(DA,"CG")) IF +SDCG S ^SCE("AG",+X,DA)="" "^DD",409.68,409.68,.01,1,4,2) N SDCG S SDCG=$G(^SCE(DA,"CG")) IF +SDCG K ^SCE("AG",+X,DA) "^DD",409.68,409.68,.01,1,4,"%D",0) ^^1^1^3160629^ "^DD",409.68,409.68,.01,1,4,"%D",1,0) Used to quickly identify entries 'auto-generated' by other packages. "^DD",409.68,409.68,.01,1,4,"DT") 2970827 "^DD",409.68,409.68,.01,3) "^DD",409.68,409.68,.01,21,0) ^^1^1^2950301^^ "^DD",409.68,409.68,.01,21,1,0) This field contains the date and time when outpatient encounter occurred. "^DD",409.68,409.68,.01,"DT") 3150828 "^DD",409.68,409.68,.05,0) VISIT FILE ENTRY^P9000010^AUPNVSIT(^0;5^Q "^DD",409.68,409.68,.05,1,0) ^.1 "^DD",409.68,409.68,.05,1,1,0) 409.68^AVSIT "^DD",409.68,409.68,.05,1,1,1) S ^SCE("AVSIT",$E(X,1,30),DA)="" "^DD",409.68,409.68,.05,1,1,2) K ^SCE("AVSIT",$E(X,1,30),DA) "^DD",409.68,409.68,.05,1,1,"%D",0) ^^2^2^2930209^ "^DD",409.68,409.68,.05,1,1,"%D",1,0) This is the standard cross reference set for the Visit Tracking "^DD",409.68,409.68,.05,1,1,"%D",2,0) application. "^DD",409.68,409.68,.05,1,1,"DT") 2930209 "^DD",409.68,409.68,.05,1,2,0) 409.68^AVCNT^MUMPS "^DD",409.68,409.68,.05,1,2,1) N SDX S SDX=X,X="VSIT" X ^%ZOSF("TEST") I $T S X=SDX D ADD^VSIT "^DD",409.68,409.68,.05,1,2,2) N SDX S SDX=X,X="VSIT" X ^%ZOSF("TEST") I $T S X=SDX D SUB^VSIT "^DD",409.68,409.68,.05,1,2,"%D",0) ^^2^2^3160629^ "^DD",409.68,409.68,.05,1,2,"%D",1,0) This cross reference calls Visit Tracking code to increment and "^DD",409.68,409.68,.05,1,2,"%D",2,0) decrement the VISIT file's DEPENDENT ENTRY COUNT field. "^DD",409.68,409.68,.05,1,2,"DT") 2930511 "^DD",409.68,409.68,.05,1,3,0) ^^TRIGGER^409.68^.2 "^DD",409.68,409.68,.05,1,3,1) K DIV S DIV=X,D0=DA,DIV(0)=D0 S Y(1)=$S($D(^SCE(D0,0)):^(0),1:"") S X=$P(Y(1),U,20),X=X S DIU=X K Y S X=DIV S X=$$IEN2VID^VSIT(X) X ^DD(409.68,.05,1,3,1.4) "^DD",409.68,409.68,.05,1,3,1.4) S DIH=$S($D(^SCE(DIV(0),0)):^(0),1:""),DIV=X S $P(^(0),U,20)=DIV,DIH=409.68,DIG=.2 D ^DICR:$O(^DD(DIH,DIG,1,0))>0 "^DD",409.68,409.68,.05,1,3,2) Q "^DD",409.68,409.68,.05,1,3,"%D",0) ^.101^1^1^3100222^^^^ "^DD",409.68,409.68,.05,1,3,"%D",1,0) This trigger is to collect the Unique Visit ID when a Visit IEN is entered. "^DD",409.68,409.68,.05,1,3,"CREATE VALUE") S X=$$IEN2VID^VSIT(X) "^DD",409.68,409.68,.05,1,3,"DELETE VALUE") NO EFFECT "^DD",409.68,409.68,.05,1,3,"DT") 2960503 "^DD",409.68,409.68,.05,1,3,"FIELD") UNIQ "^DD",409.68,409.68,.05,3) "^DD",409.68,409.68,.05,21,0) ^.001^4^4^3050805^^ "^DD",409.68,409.68,.05,21,1,0) This field indicates the VISIT file entry associated with this encounter. "^DD",409.68,409.68,.05,21,2,0) "^DD",409.68,409.68,.05,21,3,0) This field is optional and will only be filled in if the site is running "^DD",409.68,409.68,.05,21,4,0) the Visit Tracking module. "^DD",409.68,409.68,.05,"DT") 3100222 "^DD",409.68,409.68,.07,0) CHECK OUT PROCESS COMPLETION^D^^0;7^S %DT="ETXR" D ^%DT S X=Y K:Y<1 X "^DD",409.68,409.68,.07,.1) CHECK OUT PROCESS COMPLETION DATE "^DD",409.68,409.68,.07,1,0) ^.1 "^DD",409.68,409.68,.07,1,1,0) 409.68^ANT^MUMPS "^DD",409.68,409.68,.07,1,1,1) D OE^SDM1A(DA,"SET") "^DD",409.68,409.68,.07,1,1,2) D OE^SDM1A(DA,"KILL") "^DD",409.68,409.68,.07,1,1,"%D",0) ^^2^2^2930311^^ "^DD",409.68,409.68,.07,1,1,"%D",1,0) This MUMPS cross reference updates the appointment status field "^DD",409.68,409.68,.07,1,1,"%D",2,0) in the patient file. "^DD",409.68,409.68,.07,1,1,"DT") 2930311 "^DD",409.68,409.68,.07,1,2,0) ^^TRIGGER^409.68^.12 "^DD",409.68,409.68,.07,1,2,1) K DIV S DIV=X,D0=DA,DIV(0)=D0 S Y(1)=$S($D(^SCE(D0,0)):^(0),1:"") S X=$P(Y(1),U,12),X=X S DIU=X K Y X ^DD(409.68,.07,1,2,1.1) X ^DD(409.68,.07,1,2,1.4) "^DD",409.68,409.68,.07,1,2,1.1) S X=DIV N Y S Y=^SCE(DA,0) S X=$$STATUS^SDVSIT0(+$P(Y,U,2),+Y,+$P(Y,U,4),+$P(Y,U,8),"SET") "^DD",409.68,409.68,.07,1,2,1.4) S DIH=$S($D(^SCE(DIV(0),0)):^(0),1:""),DIV=X S $P(^(0),U,12)=DIV,DIH=409.68,DIG=.12 D ^DICR:$N(^DD(DIH,DIG,1,0))>0 "^DD",409.68,409.68,.07,1,2,2) K DIV S DIV=X,D0=DA,DIV(0)=D0 S Y(1)=$S($D(^SCE(D0,0)):^(0),1:"") S X=$P(Y(1),U,12),X=X S DIU=X K Y X ^DD(409.68,.07,1,2,2.1) X ^DD(409.68,.07,1,2,2.4) "^DD",409.68,409.68,.07,1,2,2.1) S X=DIV N Y S Y=^SCE(DA,0) S X=$$STATUS^SDVSIT0(+$P(Y,U,2),+Y,+$P(Y,U,4),+$P(Y,U,8),"KILL") "^DD",409.68,409.68,.07,1,2,2.4) S DIH=$S($D(^SCE(DIV(0),0)):^(0),1:""),DIV=X S $P(^(0),U,12)=DIV,DIH=409.68,DIG=.12 D ^DICR:$N(^DD(DIH,DIG,1,0))>0 "^DD",409.68,409.68,.07,1,2,"%D",0) ^.101^10^10^3160630^^^ "^DD",409.68,409.68,.07,1,2,"%D",1,0) "^DD",409.68,409.68,.07,1,2,"%D",2,0) This trigger updates the STATUS(#.12) field. "^DD",409.68,409.68,.07,1,2,"%D",3,0) "^DD",409.68,409.68,.07,1,2,"%D",4,0) If the patient was an inpatient at the time of the encounter then the "^DD",409.68,409.68,.07,1,2,"%D",5,0) status will always be 'INPATIENT' regardless if the encounter was checked "^DD",409.68,409.68,.07,1,2,"%D",6,0) out or not. "^DD",409.68,409.68,.07,1,2,"%D",7,0) "^DD",409.68,409.68,.07,1,2,"%D",8,0) Also, if the encounter was an appointment and the clinic is a non-count "^DD",409.68,409.68,.07,1,2,"%D",9,0) clinic then the status will always be 'NON-COUNT' regardless if the "^DD",409.68,409.68,.07,1,2,"%D",10,0) encounter was checked out or not. "^DD",409.68,409.68,.07,1,2,"CREATE VALUE") N Y S Y=^SCE(DA,0) S X=$$STATUS^SDVSIT0(+$P(Y,U,2),+Y,+$P(Y,U,4),+$P(Y,U,8),"SET") "^DD",409.68,409.68,.07,1,2,"DELETE VALUE") N Y S Y=^SCE(DA,0) S X=$$STATUS^SDVSIT0(+$P(Y,U,2),+Y,+$P(Y,U,4),+$P(Y,U,8),"KILL") "^DD",409.68,409.68,.07,1,2,"DT") 2930503 "^DD",409.68,409.68,.07,1,2,"FIELD") STATUS "^DD",409.68,409.68,.07,1,3,0) 409.68^ACHILD^MUMPS "^DD",409.68,409.68,.07,1,3,1) D SET^SDCOU(DA,X) "^DD",409.68,409.68,.07,1,3,2) D KILL^SDCOU(DA,X) "^DD",409.68,409.68,.07,1,3,"%D",0) ^^3^3^2930410^ "^DD",409.68,409.68,.07,1,3,"%D",1,0) "^DD",409.68,409.68,.07,1,3,"%D",2,0) This cross reference updates the 'CHECK OUT PROCESS COMPLETION field "^DD",409.68,409.68,.07,1,3,"%D",3,0) of the 'children' entries. "^DD",409.68,409.68,.07,1,3,"DT") 2930410 "^DD",409.68,409.68,.07,3) "^DD",409.68,409.68,.07,5,1,0) 409.68^.06^2 "^DD",409.68,409.68,.07,21,0) ^^2^2^2930511^^ "^DD",409.68,409.68,.07,21,1,0) This field indicates the check out process has been successfully "^DD",409.68,409.68,.07,21,2,0) completed for this outpatient encounter. "^DD",409.68,409.68,.07,23,0) ^^1^1^2930312^^ "^DD",409.68,409.68,.07,23,1,0) "^DD",409.68,409.68,.07,"DT") 3150828 "^DD",409.68,409.68,.08,0) ORIGINATING PROCESS TYPE^RSI^1:APPOINTMENT;2:STOP CODE ADDITION;3:DISPOSITION;4:CREDIT STOP CODE;^0;8^Q "^DD",409.68,409.68,.08,21,0) ^^5^5^3160630^ "^DD",409.68,409.68,.08,21,1,0) This field indicates the type of process that created this encounter. "^DD",409.68,409.68,.08,21,2,0) The types are the following: "^DD",409.68,409.68,.08,21,3,0) 1 - appointment "^DD",409.68,409.68,.08,21,4,0) 2 - add/edit stop code "^DD",409.68,409.68,.08,21,5,0) 3 - disposition "^DD",409.68,409.68,.08,"DT") 3170504 "^DD",409.68,409.68,.09,0) EXTENDED REFERENCE^FI^^0;9^K:$L(X)>60!($L(X)<1) X "^DD",409.68,409.68,.09,3) Answer must be 1-60 characters in length. "^DD",409.68,409.68,.09,21,0) ^^24^24^3160630^ "^DD",409.68,409.68,.09,21,1,0) This field indicates the internal multiple entry of the originating "^DD",409.68,409.68,.09,21,2,0) process that created the encounter. "^DD",409.68,409.68,.09,21,3,0) "^DD",409.68,409.68,.09,21,4,0) The reference mapping is the following: "^DD",409.68,409.68,.09,21,5,0) "^DD",409.68,409.68,.09,21,6,0) Originating Process Global Reference "^DD",409.68,409.68,.09,21,7,0) ------------------- ---------------- "^DD",409.68,409.68,.09,21,8,0) 1 - appointments ^SC(,"S",,1,) "^DD",409.68,409.68,.09,21,9,0) Note: If this field is equal to 999999, it means that the "^DD",409.68,409.68,.09,21,10,0) appointment encounter was created by the ACRP Database "^DD",409.68,409.68,.09,21,11,0) Conversion functionality in patch SD*5.3*211. The 999999 "^DD",409.68,409.68,.09,21,12,0) indicates that the above ^SC node did not exist at the "^DD",409.68,409.68,.09,21,13,0) time of the conversion. The node did not exist because it "^DD",409.68,409.68,.09,21,14,0) had been purged. The conversion set and then killed the "^DD",409.68,409.68,.09,21,15,0) pseudo 999999 node in order to create the encounter. "^DD",409.68,409.68,.09,21,16,0) "^DD",409.68,409.68,.09,21,17,0) As a result, the 999999 also means that the ELIGIBILITY "^DD",409.68,409.68,.09,21,18,0) OF ENCOUNTER (#.13) for the encounter was the patient's "^DD",409.68,409.68,.09,21,19,0) primary eligibility at the time of the conversion, since "^DD",409.68,409.68,.09,21,20,0) no history exists. "^DD",409.68,409.68,.09,21,21,0) "^DD",409.68,409.68,.09,21,22,0) 2 - add/edits Always null ; not applicable "^DD",409.68,409.68,.09,21,23,0) "^DD",409.68,409.68,.09,21,24,0) 3 - dispositions ^DPT(,"DIS",) "^DD",409.68,409.68,.09,"DT") 3160630 "^DD",409.68,409.68,.1,0) APPOINTMENT TYPE^RP409.1'^SD(409.1,^0;10^Q "^DD",409.68,409.68,.1,1,0) ^.1 "^DD",409.68,409.68,.1,1,1,0) 409.68^ACG^MUMPS "^DD",409.68,409.68,.1,1,1,1) N SD0 S SD0=$G(^SCE(DA,0)) IF +SD0,X=10 S ^SCE("ACG",+SD0,DA)="" "^DD",409.68,409.68,.1,1,1,2) N SD0 S SD0=$G(^SCE(DA,0)) IF +SD0,X=10 K ^SCE("ACG",+SD0,DA) "^DD",409.68,409.68,.1,1,1,"%D",0) ^^2^2^2970827^^ "^DD",409.68,409.68,.1,1,1,"%D",1,0) Used to quickly find entries that have a 'computer generated' appointment "^DD",409.68,409.68,.1,1,1,"%D",2,0) type. "^DD",409.68,409.68,.1,1,1,"DT") 2970827 "^DD",409.68,409.68,.1,5,1,0) 2.98^9.5^1 "^DD",409.68,409.68,.1,21,0) ^^2^2^3160630^ "^DD",409.68,409.68,.1,21,1,0) This field contains the appointment type associated with the "^DD",409.68,409.68,.1,21,2,0) outpatient encounter. "^DD",409.68,409.68,.1,"DT") 3160630 "^DD",409.68,409.68,201,0) COMPUTER GENERATED?^SI^0:NO;1:YES;^CG;1^Q "^DD",409.68,409.68,201,1,0) ^.1 "^DD",409.68,409.68,201,1,1,0) 409.68^AG^MUMPS "^DD",409.68,409.68,201,1,1,1) N SD0 S SD0=$G(^SCE(DA,0)) IF +SD0,X S ^SCE("AG",+SD0,DA)="" "^DD",409.68,409.68,201,1,1,2) N SD0 S SD0=$G(^SCE(DA,0)) IF +SD0,X K ^SCE("AG",+SD0,DA) "^DD",409.68,409.68,201,1,1,"%D",0) ^^1^1^3160630^ "^DD",409.68,409.68,201,1,1,"%D",1,0) Used to quickly identify entries 'auto-generated' by other packages. "^DD",409.68,409.68,201,1,1,"DT") 2970827 "^DD",409.68,409.68,201,21,0) ^^3^3^3160630^ "^DD",409.68,409.68,201,21,1,0) This field is used for data validation. It helps determine which entries "^DD",409.68,409.68,201,21,2,0) were automatically generated by outside packages. This field should not be "^DD",409.68,409.68,201,21,3,0) edited. "^DD",409.68,409.68,201,23,0) ^^1^1^2970826^ "^DD",409.68,409.68,201,23,1,0) This field is updated via PCE event driver. "^DD",409.68,409.68,201,"DT") 3160630 "BLD",10281,6) ^554 **END** **END**