Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: SDRRINQ

SDRRINQ.m

Go to the documentation of this file.
  1. SDRRINQ ;10N20/MAH;-Recall Reminder PATIENT INQUIRY ;01/28/2008 11:32
  1. ;;5.3;PIMS;**1016**;JUN 30, 2012;Build 20
  1. ; Option: SDRR PATIENT INQUIRY
  1. EN ;Looping through both active recalls and archive entries
  1. N DFN
  1. K ^TMP("SDRRINQ",$J)
  1. S (SHOW,SHOW1)=1
  1. D ^DPTLK Q:Y<0 S DFN=+Y K Y
  1. I '$D(^SD(403.5,"B",DFN)) W !!,"**No Active Clinic Recall on file",! S SHOW=0
  1. I '$D(^SD(403.56,"B",DFN)) W !,"**No Archive Clinic Recalls on file",! S SHOW1=0
  1. G:(SHOW<1)&(SHOW1<1) QUIT
  1. D DATE
  1. I $D(ERR) K ERR Q
  1. SELDT I RANGE=1 S %DT="AEX",%DT("A")="Beginning Date: " D ^%DT Q:Y<0 S SDT=Y,%DT("A")="Ending DATE: " D ^%DT I Y<SDT W $C(7)," ??" G SELDT
  1. S EDT=Y
  1. I RANGE=0 S (SDT,EDT)=0
  1. I RANGE=0 D PRT
  1. I $D(ERROR) K ERROR Q
  1. I Y=1 G QUE^SDRRINQ1
  1. I RANGE=0 D ACT,ARC,REPORT,REPORT1 G QUIT
  1. I RANGE=1 D SEL,SEL1,REPORT,REPORT1 G QUIT
  1. Q
  1. SEL I $D(^SD(403.5,"B",DFN)) S (RSENT,SSENT,PRDT,TYPE)="" S IEN=0 F S IEN=$O(^SD(403.5,"B",DFN,IEN)) Q:'IEN S NODE=$G(^SD(403.5,IEN,0)) D
  1. .S CLINIC=$P($G(NODE),"^",2),CLINIC=$$GET1^DIQ(44,CLINIC_",",.01),ACCINFOR=$P($G(NODE),"^",3)
  1. .S TYPE=$P($G(NODE),"^",4) I TYPE'="" S TYPE=$P(^SD(403.51,TYPE,0),"^",1)
  1. .S PROVIDER=$P(NODE,"^",5) I PROVIDER'="" S PROVIDER=$P($G(^SD(403.54,PROVIDER,0)),"^",1) S PROVIDER=$$NAME^XUSER(PROVIDER,"F")
  1. .I PROVIDER="" S PROVIDER="Unknown"
  1. .S RDT=""
  1. .S Y=$P(NODE,"^",6) Q:Y<SDT!(Y>EDT)
  1. .I Y>SDT,(Y<EDT) D DD^%DT S RDT=Y K Y,X
  1. .S COMMENT=$P($G(NODE),"^",7)
  1. .S FAST=$S($P(NODE,"^",8)["n":"NO",$P(NODE,"^",8)["f":"YES",1:"")
  1. .S LOA=$P(NODE,"^",9)
  1. .S Y=$P($G(NODE),"^",10) I Y'="" D DD^%DT S RSENT=Y K Y,X
  1. .I RSENT="" S RSENT="NOTSENT"
  1. .S USER=$P($G(NODE),"^",11),USER=$$NAME^XUSER(USER,"F")
  1. .S Y=$P(NODE,"^",12) I Y'="" D DD^%DT S PRDT=Y K Y,X
  1. .S Y=$P(NODE,"^",13) I Y'="" D DD^%DT S SSENT="*"_Y K Y,X
  1. .S ^TMP("SDRRINQ",$J,"ACT",IEN)=CLINIC_"^"_ACCINFOR_"^"_TYPE_"^"_PROVIDER_"^"_RDT_"^"_COMMENT_"^"_FAST_"^"_LOA_"^"_RSENT_"^"_USER_"^"_PRDT_"^"_SSENT
  1. Q
  1. SEL1 I $D(^SD(403.56,"B",DFN)) S (SSENT,RSENT,PRDTA,TYPE)="" S IENA=0 F S IENA=$O(^SD(403.56,"B",DFN,IENA)) Q:'IENA S NODEA=$G(^SD(403.56,IENA,0)) D
  1. .S CLINIC=$P($G(NODEA),"^",2),CLINIC=$$GET1^DIQ(44,CLINIC_",",.01),ACCINFOR=$P($G(NODEA),"^",3)
  1. .S TYPE=$P($G(NODEA),"^",4) I TYPE'="" S TYPE=$P(^SD(403.51,TYPE,0),"^",1)
  1. .S PROVIDER=$P(NODEA,"^",5) I PROVIDER'="" S PROVIDER=$P($G(^SD(403.54,PROVIDER,0)),"^",1) S PROVIDER=$$NAME^XUSER(PROVIDER,"F")
  1. .I PROVIDER="" S PROVIDER="Unknown"
  1. .S RDT=""
  1. .S Y=$P(NODEA,"^",6) Q:Y<SDT!(Y>EDT)
  1. .I Y>SDT&(Y<EDT) D DD^%DT S RDT=Y K Y,X
  1. .S COMMENT=$P($G(NODEA),"^",7)
  1. .S FAST=$S($P(NODEA,"^",8)["n":"NO",$P(NODEA,"^",8)["f":"YES",1:"")
  1. .S LOA=$P(NODEA,"^",9)
  1. .S Y=$P($G(NODEA),"^",10) I Y'="" D DD^%DT S RSENT=Y K Y,X
  1. .I RSENT="" S RSENT="NOTSENT"
  1. .S USER=$P($G(NODEA),"^",11),USER=$$NAME^XUSER(USER,"F")
  1. .I $D(^SD(403.56,IENA,2)) S NODEA2=$G(^SD(403.56,IENA,2)) D
  1. ..S Y=$P(NODEA2,"^",1) D DD^%DT S PRDTA=Y K Y,X
  1. ..S USER2=$P($G(NODEA2),"^",2),USER2=$$NAME^XUSER(USER2,"F")
  1. ..S SDRREASN=$S($P(NODEA2,"^",3)=1:"FTR",$P(NODEA2,"^",3)=2:"MOVED",$P(NODEA2,"^",3)=3:"DECEASED",$P(NODEA2,"^",3)=4:"DNWC",$P(NODEA2,"^",3)=5:"RCOVA",$P(NODEA2,"^",3)=6:"OTHER",$P(NODEA2,"^",3)=7:"Scheduled",1:"")
  1. ..S ^TMP("SDRRINQ",$J,"ARC",IENA)=CLINIC_"^"_ACCINFOR_"^"_TYPE_"^"_PROVIDER_"^"_RDT_"^"_COMMENT_"^"_FAST_"^"_LOA_"^"_RSENT_"^"_USER2_"^"_SSENT_"^"_SDRREASN_"^"_PRDTA
  1. Q
  1. HDR ;Review all Recall Reminder on screen for all
  1. D DEM^VADPT S NAME=VADM(1),LAST4=VA("BID"),DOB=$P(VADM(3),"^",2) S HDR="Patient Name: "_NAME_" Date of Birth: "_DOB_" Last4: "_LAST4
  1. W @IOF,HDR
  1. Q
  1. ACT I $D(^SD(403.5,"B",DFN)) S (RSENT,SSENT,IEN,PRDT,TYPE)="" F S IEN=$O(^SD(403.5,"B",DFN,IEN)) Q:'IEN S NODE=$G(^SD(403.5,IEN,0)) D
  1. .S CLINIC=$P($G(NODE),"^",2),CLINIC=$$GET1^DIQ(44,CLINIC_",",.01),ACCINFOR=$P($G(NODE),"^",3)
  1. .S TYPE=$P($G(NODE),"^",4) I TYPE'="" S TYPE=$P(^SD(403.51,TYPE,0),"^",1)
  1. .S PROVIDER=$P(NODE,"^",5) I PROVIDER'="" S PROVIDER=$P($G(^SD(403.54,PROVIDER,0)),"^",1) S PROVIDER=$$NAME^XUSER(PROVIDER,"F")
  1. .I PROVIDER="" S PROVIDER="Unknown"
  1. .S RDT=""
  1. .S Y=$P(NODE,"^",6) D DD^%DT S RDT=Y K Y,X
  1. .S COMMENT=$P($G(NODE),"^",7)
  1. .S FAST=$S($P(NODE,"^",8)["n":"NO",$P(NODE,"^",8)["f":"YES",1:"")
  1. .S LOA=$P(NODE,"^",9)
  1. .S Y=$P($G(NODE),"^",10) I Y'="" D DD^%DT S RSENT=Y K Y,X
  1. .I RSENT="" S RSENT="NOTSENT"
  1. .S USER=$P($G(NODE),"^",11),USER=$$NAME^XUSER(USER,"F")
  1. .S Y=$P(NODE,"^",12) I Y'="" D DD^%DT S PRDT=Y K Y,X
  1. .S Y=$P(NODE,"^",13) I Y'="" D DD^%DT S SSENT="*"_Y K Y,X
  1. .S ^TMP("SDRRINQ",$J,"ACT",IEN)=CLINIC_"^"_ACCINFOR_"^"_TYPE_"^"_PROVIDER_"^"_RDT_"^"_COMMENT_"^"_FAST_"^"_LOA_"^"_RSENT_"^"_USER_"^"_PRDT_"^"_SSENT
  1. Q
  1. ARC I $D(^SD(403.56,"B",DFN)) S (SSENT,RSENT,PRDTA,TYPE)="" S IENA=0 F S IENA=$O(^SD(403.56,"B",DFN,IENA)) Q:'IENA S NODEA=$G(^SD(403.56,IENA,0)) D
  1. .S CLINIC=$P($G(NODEA),"^",2),CLINIC=$$GET1^DIQ(44,CLINIC_",",.01),ACCINFOR=$P($G(NODEA),"^",3)
  1. .S TYPE=$P($G(NODEA),"^",4) I TYPE'="" S TYPE=$P(^SD(403.51,TYPE,0),"^",1)
  1. .S PROVIDER=$P(NODEA,"^",5) I PROVIDER'="" S PROVIDER=$P($G(^SD(403.54,PROVIDER,0)),"^",1) S PROVIDER=$$NAME^XUSER(PROVIDER,"F")
  1. .I PROVIDER="" S PROVIDER="Unknown"
  1. .S RDT=""
  1. .S Y=$P(NODEA,"^",6) D DD^%DT S RDT=Y K Y,X
  1. .S COMMENT=$P($G(NODEA),"^",7)
  1. .S FAST=$S($P(NODEA,"^",8)["n":"NO",$P(NODEA,"^",8)["f":"YES",1:"")
  1. .S LOA=$P(NODEA,"^",9)
  1. .S Y=$P($G(NODEA),"^",10) I Y'="" D DD^%DT S RSENT=Y K Y,X
  1. .I RSENT="" S RSENT="NOTSENT"
  1. .S USER=$P($G(NODEA),"^",11),USER=$$NAME^XUSER(USER,"F")
  1. .I $D(^SD(403.56,IENA,2)) S NODEA2=$G(^SD(403.56,IENA,2)) D
  1. ..S Y=$P(NODEA2,"^",1) D DD^%DT S PRDTA=Y K Y,X
  1. ..S USER2=$P($G(NODEA2),"^",2),USER2=$$NAME^XUSER(USER2,"F")
  1. ..S SDRREASN=$S($P(NODEA2,"^",3)=1:"FTR",$P(NODEA2,"^",3)=2:"MOVED",$P(NODEA2,"^",3)=3:"DECEASED",$P(NODEA2,"^",3)=4:"DNWC",$P(NODEA2,"^",3)=5:"RCOVA",$P(NODEA2,"^",3)=6:"OTHER",$P(NODEA2,"^",3)=7:"Scheduled",1:"")
  1. ..S ^TMP("SDRRINQ",$J,"ARC",IENA)=CLINIC_"^"_ACCINFOR_"^"_TYPE_"^"_PROVIDER_"^"_RDT_"^"_COMMENT_"^"_FAST_"^"_LOA_"^"_RSENT_"^"_USER2_"^"_SSENT_"^"_SDRREASN_"^"_PRDTA
  1. Q
  1. DATE ; DIR call
  1. S (YES,RANGE)=0,DIR("B")="All" K SDHDR
  1. S DIR(0)="S^R:Range;A:All",DIR("A")="Do you want a (R)ange or (A)ll" I $D(DIRUT) S ERR=1 G QUIT
  1. S DIR("?",1)="",DIR("?",2)=" (A)ll gives the user all dates.",DIR("?")=" (R)ange allows the user to select a range of dates."
  1. D ^DIR K DIR I $D(DIRUT) S ERR=1 G QUIT
  1. I "RA"'[Y W !!,"Enter 'R' for a date range or 'A' for all dates." G DATE
  1. I "R"[Y S RANGE=1
  1. Q
  1. PRT ;
  1. S YES=0
  1. S DIR(0)="Y",DIR("B")="NO",DIR("A")="Do you want to print the profile"
  1. S DIR("?",1)=" Enter 'YES' to print the profile.",DIR("?")=" If you enter 'NO', it will take you to the Recall Reminder report."
  1. D ^DIR K DIR I $D(DIRUT) S ERROR=1 G QUIT
  1. Q
  1. REPORT D HDR
  1. I '$D(^TMP("SDRRINQ",$J,"ACT")) W !!,?25,"No ACTIVE Recalls Reminders on file" Q
  1. I $D(^TMP("SDRRINQ",$J,"ACT")) W !!,?25,"ACTIVE RECALL REMINDERS"
  1. S ITEM=0 F S ITEM=$O(^TMP("SDRRINQ",$J,"ACT",ITEM)) Q:'ITEM D
  1. .S INFOR=$G(^TMP("SDRRINQ",$J,"ACT",ITEM))
  1. .W !!,?5,"Clinic: "_$P($G(INFOR),"^",1),?45,"Recall Date: "_$P($G(INFOR),"^",5)
  1. .W !,?5,"Provider: "_$P($G(INFOR),"^",4),?45,"Appt/Type: "_$P($G(INFOR),"^",3)
  1. .W !,?5,"Fasting/NonFasting: "_$P($G(INFOR),"^",7)
  1. .W !,?5,"Appt Requested Length: "_$P($G(INFOR),"^",8),?45,"Date Reminder Sent: "_$P($G(INFOR),"^",9)
  1. .W !,?5,"User who Entered: "_$P($G(INFOR),"^",10),?45,"Patient Requested Dt: "_$P($G(INFOR),"^",11)
  1. .W !,?5,"Date Second Reminder Sent: "_$P($G(INFOR),"^",12)
  1. .W !,?5,"Comments: "_$P($G(INFOR),"^",6)
  1. .I $Y>(IOSL-6) K DIR S DIR(0)="E",DIR("A")="Press Return for more Information.." D ^DIR Q:$D(DUOUT)!($D(DTOUT)) D HDR
  1. K DIR S DIR(0)="E",DIR("A")="Press Return to continue.." D ^DIR Q:$D(DUOUT)!($D(DTOUT))
  1. Q
  1. REPORT1 D HDR
  1. I '$D(^TMP("SDRRINQ",$J,"ARC")) W !!,?25,"No INACTIVE Recalls Reminders on file" Q
  1. I $D(^TMP("SDRRINQ",$J,"ARC")) W !!,?25,"INACTIVE RECALL REMINDERS"
  1. S ITEM=0 F S ITEM=$O(^TMP("SDRRINQ",$J,"ARC",ITEM)) Q:'ITEM D
  1. .S INFOR=$G(^TMP("SDRRINQ",$J,"ARC",ITEM))
  1. .W !!,?5,"Clinic: "_$P($G(INFOR),"^",1),?45,"Recall Date: "_$P($G(INFOR),"^",5)
  1. .W !,?5,"Provider: "_$P($G(INFOR),"^",4),?45,"Appt/Type: "_$P($G(INFOR),"^",3)
  1. .W !,?5,"Fasting/NonFasting: "_$P($G(INFOR),"^",7)
  1. .W !,?5,"Appt Requested Length: "_$P($G(INFOR),"^",8),?45,"Date Reminder Sent: "_$P($G(INFOR),"^",9)
  1. .W !,?5,"User who Entered: "_$P($G(INFOR),"^",10),?45,"Patient Requested Dt: "_$P($G(INFOR),"^",11)
  1. .W !,?5,"Date Removed from Active File: "_$P($G(INFOR),"^",13)
  1. .W !,?5,"Reason for Removal: "_$P($G(INFOR),"^",12)
  1. .W !,?5,"User who Deleted Entry: "_$P($G(INFOR),"^",10)
  1. .W !,?5,"Comments: "_$P($G(INFOR),"^",6)
  1. .I $Y>(IOSL-6) K DIR S DIR(0)="E",DIR("A")="Press Return for more Information.." D ^DIR Q:$D(DUOUT)!($D(DTOUT)) D HDR
  1. K DIR S DIR(0)="E",DIR("A")="Press Return to continue.." D ^DIR Q:$D(DUOUT)!($D(DTOUT))
  1. Q
  1. QUIT K DFN,Y,SHOW,SHOW1,ACCINFOR,CLINIC,COMMENT,DOB,DIRUT,DTOUT,DUOUT,EDT,FAST,HDR,IEN,IENA,INFOR,ITEM,LAST4,LOA,NAME
  1. K NODE,NODEA,PRDT,PRDTA,PROVIDER,RANGE,RDT,RSENT,SDRREASN,SDT,SSENT,TYPE,USER,USER2,NODEA2,DIR,YES
  1. K ^TMP("SDRRINQ",$J),%DT,VA,VADM,YES
  1. Q