SDRR5 ;10N20/MAH; RECALL REMINDER Remove and Replace Providers and Clinics; 01/22/2008
;;5.3;PIMS;**1016**;JUN 30, 2012;Build 20
;This routine was written per requests from VISN20 sites
;^SD(403.5 -- RECALL REMINDERS FILE
;403.54 -- RECALL REMINDERS PROVIDERS FILE
;44 -- HOSPITAL LOCATION FILE
;Used in option [SDRR CONVERT ENTRIES]
STRT S (NIEN,OIEN,SDT,EDT,OHIEN,NHIEN,FLAG,OLDC,NEWC)=""
S DIC="^SD(403.54,",DIC(0)="AEQMZ",DIC("A")="Select Retiring Provider: " D ^DIC G:Y<0 QUIT S OIEN=+Y,OPROV=$P(^SD(403.54,OIEN,0),"^",1),SDRROLD=$$NAME^XUSER(OPROV,"F")
S DIC="^SD(403.54,",DIC(0)="AEQMZ",DIC("A")="Select New Provider: " D ^DIC G:Y<0 QUIT S NIEN=+Y,OPROV=$P(^SD(403.54,NIEN,0),"^",1),SDRRNEW=$$NAME^XUSER(OPROV,"F")
W !,?1,"Do you want to change Clinic names that the recall is pointed to: " S %=2 D YN^DICN I %=2 G SELDT
K %
CLINC S DIC="^SC(",DIC(0)="AEQMZ",DIC("A")="Select Retiring Clinic: " D ^DIC G:Y<0 CLEAN S OHIEN=+Y,OLDC=$$GET1^DIQ(44,OHIEN_",",.01)
S DIC="^SC(",DIC(0)="AEQMZ",DIC("A")="Select New Clinic: " D ^DIC G:Y<0 CLEAN S NHIEN=+Y,FLAG="C",NEWC=$$GET1^DIQ(44,NHIEN_",",.01)
CLEAN ;CLINIC NOT SELECTED BUT CHECK
I FLAG'["C" W !,?1,"You have selected not to move clinic recall applications to a different clinic is this correct: " S %=2 D YN^DICN I %=2 G CLINC
SELDT S %DT="AEX",%DT("A")="Start with RECALL DATE: " D ^%DT Q:Y<0 S SDT=Y,%DT("A")="End with RECALL DATE: " D ^%DT I Y<SDT W $C(7)," ??" G SELDT
S EDT=Y S EDT=EDT_".9999"
W !!,?5,"****You will be converting all Clinic Recalls for****"
W !!,?3,SDRROLD_" -They will be converted to- "_SDRRNEW
I NEWC'="" W !,?3,OLDC_" Clinic will be converted to "_NEWC_" Clinic"
I FLAG["C" S D0=0 F S D0=$O(^SD(403.5,"C",OIEN,D0)) Q:D0'>0 D
.S RD=$P($G(^SD(403.5,D0,0)),"^",6) Q:RD<SDT!(RD>EDT) S DIE="^SD(403.5," S DA=D0,DR="4///^S X=""`""_NIEN;4.5///^S X=""`""_NHIEN" D ^DIE K DIE,DR,DA
I FLAG="" S D0=0 F S D0=$O(^SD(403.5,"C",OIEN,D0)) Q:D0'>0 D
.S RD=$P($G(^SD(403.5,D0,0)),"^",6) Q:RD<SDT!(RD>EDT) S DIE="^SD(403.5," S DA=D0,DR="4///^S X=""`""_NIEN" D ^DIE K DIE,DR,DA
QUIT K Y,OIEN,NIEN,FLAG,OPROV,SDT,RD,EDT,SDRRNEW,SDRROLD,D0,NEWC,NHIEN,OHIEN,OLDC,X,DIC,FLAG,%DT
SDRR5 ;10N20/MAH; RECALL REMINDER Remove and Replace Providers and Clinics; 01/22/2008
+1 ;;5.3;PIMS;**1016**;JUN 30, 2012;Build 20
+2 ;This routine was written per requests from VISN20 sites
+3 ;^SD(403.5 -- RECALL REMINDERS FILE
+4 ;403.54 -- RECALL REMINDERS PROVIDERS FILE
+5 ;44 -- HOSPITAL LOCATION FILE
+6 ;Used in option [SDRR CONVERT ENTRIES]
STRT SET (NIEN,OIEN,SDT,EDT,OHIEN,NHIEN,FLAG,OLDC,NEWC)=""
+1 SET DIC="^SD(403.54,"
SET DIC(0)="AEQMZ"
SET DIC("A")="Select Retiring Provider: "
DO ^DIC
IF Y<0
GOTO QUIT
SET OIEN=+Y
SET OPROV=$PIECE(^SD(403.54,OIEN,0),"^",1)
SET SDRROLD=$$NAME^XUSER(OPROV,"F")
+2 SET DIC="^SD(403.54,"
SET DIC(0)="AEQMZ"
SET DIC("A")="Select New Provider: "
DO ^DIC
IF Y<0
GOTO QUIT
SET NIEN=+Y
SET OPROV=$PIECE(^SD(403.54,NIEN,0),"^",1)
SET SDRRNEW=$$NAME^XUSER(OPROV,"F")
+3 WRITE !,?1,"Do you want to change Clinic names that the recall is pointed to: "
SET %=2
DO YN^DICN
IF %=2
GOTO SELDT
+4 KILL %
CLINC SET DIC="^SC("
SET DIC(0)="AEQMZ"
SET DIC("A")="Select Retiring Clinic: "
DO ^DIC
IF Y<0
GOTO CLEAN
SET OHIEN=+Y
SET OLDC=$$GET1^DIQ(44,OHIEN_",",.01)
+1 SET DIC="^SC("
SET DIC(0)="AEQMZ"
SET DIC("A")="Select New Clinic: "
DO ^DIC
IF Y<0
GOTO CLEAN
SET NHIEN=+Y
SET FLAG="C"
SET NEWC=$$GET1^DIQ(44,NHIEN_",",.01)
CLEAN ;CLINIC NOT SELECTED BUT CHECK
+1 IF FLAG'["C"
WRITE !,?1,"You have selected not to move clinic recall applications to a different clinic is this correct: "
SET %=2
DO YN^DICN
IF %=2
GOTO CLINC
SELDT SET %DT="AEX"
SET %DT("A")="Start with RECALL DATE: "
DO ^%DT
IF Y<0
QUIT
SET SDT=Y
SET %DT("A")="End with RECALL DATE: "
DO ^%DT
IF Y<SDT
WRITE $CHAR(7)," ??"
GOTO SELDT
+1 SET EDT=Y
SET EDT=EDT_".9999"
+2 WRITE !!,?5,"****You will be converting all Clinic Recalls for****"
+3 WRITE !!,?3,SDRROLD_" -They will be converted to- "_SDRRNEW
+4 IF NEWC'=""
WRITE !,?3,OLDC_" Clinic will be converted to "_NEWC_" Clinic"
+5 IF FLAG["C"
SET D0=0
FOR
SET D0=$ORDER(^SD(403.5,"C",OIEN,D0))
IF D0'>0
QUIT
Begin DoDot:1
+6 SET RD=$PIECE($GET(^SD(403.5,D0,0)),"^",6)
IF RD<SDT!(RD>EDT)
QUIT
SET DIE="^SD(403.5,"
SET DA=D0
SET DR="4///^S X=""`""_NIEN;4.5///^S X=""`""_NHIEN"
DO ^DIE
KILL DIE,DR,DA
End DoDot:1
+7 IF FLAG=""
SET D0=0
FOR
SET D0=$ORDER(^SD(403.5,"C",OIEN,D0))
IF D0'>0
QUIT
Begin DoDot:1
+8 SET RD=$PIECE($GET(^SD(403.5,D0,0)),"^",6)
IF RD<SDT!(RD>EDT)
QUIT
SET DIE="^SD(403.5,"
SET DA=D0
SET DR="4///^S X=""`""_NIEN"
DO ^DIE
KILL DIE,DR,DA
End DoDot:1
QUIT KILL Y,OIEN,NIEN,FLAG,OPROV,SDT,RD,EDT,SDRRNEW,SDRROLD,D0,NEWC,NHIEN,OHIEN,OLDC,X,DIC,FLAG,%DT