| [613] | 1 | SDM4 ;ALB/BOK - MAKE APPOINTMENT ; 12 APR 1988 1100  ; Compiled April 9, 2007 14:26:51
 | 
|---|
 | 2 |  ;;5.3;Scheduling;**263,273,327,394,417,496**;Aug 13, 1993;Build 11
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 |  ;09/15/2002 $N FUNCTION REMOVED AND REPLACED WITH $O - IOFO - BAY PINES - TEH
 | 
|---|
 | 5 |  ;
 | 
|---|
 | 6 |  ;DBIA - 1476 For reference to PRIMARY ELIG. ^DPT(IEN,.372).
 | 
|---|
 | 7 |  ;DBIA - 427  For reference to ^DIC(8).
 | 
|---|
 | 8 |  ;
 | 
|---|
 | 9 |  ;09/23/2005 Patch SD*5.3*417 Upper/Lower case useage.
 | 
|---|
 | 10 |  ;04/09/2007 Patch SD*5.3*496 Accept entry in file 44 without STOP CODE
 | 
|---|
 | 11 |  ;
 | 
|---|
 | 12 |  ;
 | 
|---|
 | 13 | TYPE ;
 | 
|---|
 | 14 |  D SC
 | 
|---|
 | 15 | RAT ;Display rated service connected disabilities patch SD*5.3*394
 | 
|---|
 | 16 |  D 2^VADPT
 | 
|---|
 | 17 |  W !!,"PATIENT'S SERVICE CONNECTION AND RATED DISABILITIES:"
 | 
|---|
 | 18 |  IF $$GET1^DIQ(2,DFN_",",.301,"E")="YES"&($P(VAEL(3),"^",2)'="") D
 | 
|---|
 | 19 |  .W !,"SC Percent: "_$P(VAEL(3),"^",2)_"%"
 | 
|---|
 | 20 |  IF $$GET1^DIQ(2,DFN_",",.301,"E")="NO"&($P(VAEL(3),"^",2)="") D
 | 
|---|
 | 21 |  .W !,"Service Connected: No"
 | 
|---|
 | 22 |  ;Rated Disabilities
 | 
|---|
 | 23 |  N SDSER,SDRAT,SDPER,SDREC,NN,NUM,ANS,SDELIG,SDATD,SDSCFLG S (ANS,NN,NUM)=0
 | 
|---|
 | 24 |  F  S NN=$O(^DPT(DFN,.372,NN)) Q:'NN  D
 | 
|---|
 | 25 |  .S SDREC=$G(^DPT(DFN,.372,NN,0)) IF SDREC'="" D
 | 
|---|
 | 26 |  ..S SDRAT="" S NUM=$P($G(SDREC),"^",1) IF NUM>0 S SDRAT=$$GET1^DIQ(31,NUM_",",.01)
 | 
|---|
 | 27 |  ..S SDSER="" S SDSER=$S($P(SDREC,"^",3)="1":"SC",1:"NSC")
 | 
|---|
 | 28 |  ..W !,"    "_SDRAT_"  ("_SDSER_" - "_$P(SDREC,"^",2)_"%)"
 | 
|---|
 | 29 |  ..Q
 | 
|---|
 | 30 |  W !,"Primary Eligibility Code: "_$P(VAEL(1),"^",2)
 | 
|---|
 | 31 |  IF $P($G(^DPT(DFN,.372,0)),"^",4)<1 W !,"No Service Connected Disabilities Listed"
 | 
|---|
 | 32 |  W !
 | 
|---|
 | 33 |  S SDELIG=$$GET1^DIQ(2,DFN_",",.301,"E"),SDSCFLG=0
 | 
|---|
 | 34 |  IF SDELIG="" W !,"'SERVICE CONNECTED?' field is blank please update patient record." S SDSCFLG=1
 | 
|---|
 | 35 |  IF $P(VAEL(1),U,2)="" W !,"'PRIMARY ELIGIBILITY CODE' field is blank please update patient record." S SDSCFLG=1
 | 
|---|
 | 36 |  IF SDELIG="NO",($P(VAEL(3),U,2)>0)!($P(VAEL(1),U,2)="SC LESS THAN 50%")!($P(VAEL(1),U,2)="SERVICE CONNECTED 50% to 100%")!($P(VAEL(1),U,2)="") D
 | 
|---|
 | 37 |  .W !,"The 'SC Percent','Service Connected' and 'Primary Eligibility Codes' are OUT OF SYNC, Please CORRECT the problem." S SDSCFLG=1
 | 
|---|
 | 38 |  IF SDELIG="YES",($P(VAEL(3),"^",2)<50),($P(VAEL(1),"^",2)'="SC LESS THAN 50%") D
 | 
|---|
 | 39 |  .W !,"The 'SC Percent','Service Connected' and 'Primary Eligibility Codes' are OUT OF SYNC, Please CORRECT the problem." S SDSCFLG=1
 | 
|---|
 | 40 |  IF SDELIG="YES",($P(VAEL(3),"^",2)>49),($P(VAEL(1),"^",2)'="SERVICE CONNECTED 50% to 100%") D
 | 
|---|
 | 41 |  .W !,"The 'SC Percent','Service Connected' and 'Primary Eligibility Codes' are OUT OF SYNC, Please CORRECT the problem." S SDSCFLG=1
 | 
|---|
 | 42 |  W !
 | 
|---|
 | 43 |  ;Ask about service connected appointment
 | 
|---|
 | 44 |  N STOP,STOPN,SIEN S (ACT,IENACT)="" S STOP=$$GET1^DIQ(44,+SC_",",8,"I")
 | 
|---|
 | 45 |  I +STOP>0 S STOPN=$$GET1^DIQ(40.7,+STOP_",",1),IENACT=$O(^SD(409.45,"B",STOPN,IENACT))
 | 
|---|
 | 46 |  E  W "***NO STOP CODE ASSIGNED***" S SDATD="REGULAR" D APT Q
 | 
|---|
 | 47 |  IF IENACT'="" S SDATD=99999999999,SDATD=$O(^SD(409.45,IENACT,"E",SDATD),-1) D
 | 
|---|
 | 48 |  .IF SDATD>0 S ACT=$P(^SD(409.45,IENACT,"E",SDATD,0),"^",2)
 | 
|---|
 | 49 |  IF ACT=1 S SDATD=$$GET1^DIQ(44,+SC_",",2507) GOTO APT
 | 
|---|
 | 50 |  S SDATD="",SDATD=$$GET1^DIQ(44,+SC_",",2502) IF SDATD="YES" S SDATD=$$GET1^DIQ(44,+SC_",",2507) W "          ***NON-COUNT CLINIC***" GOTO APT
 | 
|---|
 | 51 |  S SDATD="",SDATD=$$INP^SDAM2(DFN,DT) IF SDATD="I" S SDATD=$$GET1^DIQ(44,+SC_",",2507) W "          ***PATIENT IS CURRENTLY AN INPATIENT***" GOTO APT
 | 
|---|
 | 52 |  ;STOP EXCEPTION CODES
 | 
|---|
 | 53 |  S SDATD="",SDATD=$P(VAEL(1),"^",2)
 | 
|---|
 | 54 |  IF SDATD'="SC LESS THAN 50%"&(SDATD'="SERVICE CONNECTED 50% to 100%") S SDATD="" S SDATD=$S($D(SDAPTYP):SDAPTYP,$D(^SC(+SC,"AT")):$S($D(^SD(409.1,+^("AT"),0)):$P(^(0),U),1:"REGULAR"),1:"REGULAR") D
 | 
|---|
 | 55 |  .IF SDSCFLG&(SDATD="SERVICE CONNECTED") S SDATD="REGULAR"
 | 
|---|
 | 56 |  IF SDATD="SC LESS THAN 50%"!(SDATD="SERVICE CONNECTED 50% to 100%") D
 | 
|---|
 | 57 |  .D SBR K SDANS
 | 
|---|
 | 58 |  .IF ANS="N" S SDATD=$S($D(SDAPTYP):SDAPTYP,$D(^SC(+SC,"AT")):$S($D(^SD(409.1,+^("AT"),0)):$P(^(0),U),1:"REGULAR"),1:"REGULAR")
 | 
|---|
 | 59 |  .IF ANS="Y" D
 | 
|---|
 | 60 |  ..S ANS="" S ANS=$$GET1^DIQ(44,+SC_",",2507) IF ANS="REGULAR"!(ANS="") D
 | 
|---|
 | 61 |  ...S NN=$O(^SD(409.1,"B","SERVICE CONNECTED",NN)),SDATD=$$GET1^DIQ(409.1,NN_",",.01)
 | 
|---|
 | 62 |  ..IF ANS'="REGULAR"&(ANS'="") S SDATD=ANS
 | 
|---|
 | 63 | APT W !,"APPOINTMENT TYPE: "_SDATD_"//" R X:DTIME I X']"" S X=SDATD
 | 
|---|
 | 64 |  I X["^" W !,"APPOINTMENT TYPE IS REQUIRED" G APT
 | 
|---|
 | 65 |  I X="S" W !,"PLEASE ENTER MORE THAN ONE CHARACTER" G APT
 | 
|---|
 | 66 |  I SDSCFLG D
 | 
|---|
 | 67 |  .S DIC("S")="I $D(X),$E(X,1,2)'[""SE"""
 | 
|---|
 | 68 |  .S DIC(0)="QEMNZ",DIC=409.1 D ^DIC I Y<0 Q
 | 
|---|
 | 69 |  .S SDSCFLG=0
 | 
|---|
 | 70 |  G APT:SDSCFLG
 | 
|---|
 | 71 |  S SDEC=$S($D(^DIC(8,+VAEL(1),0)):$P(^(0),U,5),1:"")
 | 
|---|
 | 72 |  S DIC("S")="I '$P(^(0),U,3),$S(SDEC[""Y"":1,1:$P(^(0),U,5)),$S('$P(^(0),U,6):1,$D(VAEL(1,+$P(^(0),U,6))):1,+VAEL(1)=$P(^(0),U,6):1,1:0)",DIC="^SD(409.1,",DIC(0)="EQMZ" D ^DIC K DIC
 | 
|---|
 | 73 |  I X["^"!(Y'>0) W !,"Appointment type is required",!,"Patient must have the eligibility code EMPLOYEE, COLLATERAL or SHARING AGREEMENT",!,"to choose those types of appointments." G TYPE
 | 
|---|
 | 74 |  S COLLAT=$S(+Y=1:1,+Y=7:7,1:0),SDAPTYP=+Y,SDDECOD=$P(^SD(409.1,+Y,0),U,6) I COLLAT W !!,"** Note - You are making a ",$P(^SD(409.1,+COLLAT,0),U)," appt.",!
 | 
|---|
 | 75 |  Q:$D(SDAMBAE)
 | 
|---|
 | 76 |  I COLLAT=7 S SDCOL=$P(^SD(409.1,SDAPTYP,0),U,6) I '$D(SDMLT)&'$D(SDD) D ^SDM0,END^SDM
 | 
|---|
 | 77 |  Q
 | 
|---|
 | 78 | ELIG S SDALLE="",SDEMP=$P(VAEL(1),U,2) W !,"THIS PATIENT HAS OTHER ENTITLED ELIGIBILITIES:" F SDOEL=0:0 S SDOEL=$O(VAEL(1,SDOEL)) Q:SDOEL=""  W !?5,$P(VAEL(1,SDOEL),U,2) S SDALLE=SDALLE_"^"_$P(VAEL(1,SDOEL),U,2)
 | 
|---|
 | 79 | 1 W !,"ENTER THE ELIGIBILITY FOR THIS APPOINTMENT: "_SDEMP_"// " R X:DTIME Q:"^"[X  S X=$$UPPER^VALM1(X) G ELIG:X["?",1:SDALLE'[("^"_X)
 | 
|---|
 | 80 |  S SDEMP=X_$P($P(SDALLE,"^"_X,2),"^") W $P($P(SDALLE,"^"_X,2),"^")
 | 
|---|
 | 81 |  F SDOEL=0:0 S SDOEL=$O(VAEL(1,SDOEL)) Q:SDOEL=""  I $P(VAEL(1,SDOEL),U,2)=SDEMP S SDEMP=SDOEL_"^"_SDEMP Q
 | 
|---|
 | 82 |  Q
 | 
|---|
 | 83 | SC ;SERVICE CONNECTED MESSAGE/IOFO - BAY PINES/TEH
 | 
|---|
 | 84 |  I $D(^DPT(DFN,.3)) S SDAMSCN=+$P(^(.3),U,2) I SDAMSCN>49 D
 | 
|---|
 | 85 |  .W !,?7,"********** THIS PATIENT IS 50% OR GREATER SERVICE-CONNECTED **********",!
 | 
|---|
 | 86 |  ;I $D(SDWLLIST),SDWLLIST D ^SDWLR       ;Patch SD*5.3*327
 | 
|---|
 | 87 |  Q
 | 
|---|
 | 88 | SBR S (ANS,SDANS)=""
 | 
|---|
 | 89 |  IF SDSCFLG S ANS="N" Q
 | 
|---|
 | 90 |  IF $D(^DPT(DFN,.3)) S SDANS=$$GET1^DIQ(2,DFN_",",.302) IF SDANS>49 S ANS="Y" Q
 | 
|---|
 | 91 |  S DIR("A")="IS THIS APPOINTMENT FOR A SERVICE CONNECTED CONDITION",DIR(0)="Y^A0" D ^DIR S ANS=$S(Y=1:"Y",1:"N")
 | 
|---|
 | 92 |  I ANS'="Y"&(ANS'="N") W !,*7,"ENTER (Y or N) PLEASE!" G SBR
 | 
|---|
 | 93 |  K DIR Q
 | 
|---|