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

RMPR210P.m

Go to the documentation of this file.
  1. RMPR210P ;RGB/MNTVBB - Resetting script expiration dates > year 2023 ; Nov 29, 2021@12:06
  1. ;;3.0;Prosthetics;**210**;Nov 29, 2021;Build 18
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. ;RMPR*3.0*210 Searches/lists for any prescription dates greater than
  1. ; year 2023 and resets expiration date to active date.
  1. ;
  1. ; Reference to $$PROD^XUPROD in ICR #4440
  1. ; Reference to ^XUSEC( in ICR #10076
  1. ; Reference to ^DPT( in ICR #10035
  1. ; Reference to ^XMD in ICR #10070
  1. ; Reference to ^XPDUTL in ICR #10141
  1. ;
  1. Q
  1. EN ;ENTRY POINT
  1. D MES^XPDUTL("Reset per the search of Home Oxygen expiration dates >2023")
  1. D MES^XPDUTL("that were set to future date to prolong script.")
  1. N RMPRYR,RMPRYRX,RMPRIEN,RMPRSCRP,RMPRREC,RMPRSCDT,RMPRT1,RMPRT2,RMPRDT,RMPRSP,RMPRNM
  1. N RMPRSITE,RMPRPROD,RMPRI,RMPRDT1,RMPRDT2,RMPRPRT,RMPRMES,RMPRNM
  1. S U="^",RMPRYR=323,(RMPRIEN,RMPRT1,RMPRT2)=0,$P(RMPRSP," ",40)="",RMPRPRT=1
  1. K ^TMP("RMPR210P",$J)
  1. S ^XTMP("RMPR210P",0)=$$FMADD^XLFDT(DT,90)_"^"_DT
  1. HOLOOP F S RMPRIEN=$O(^RMPR(665,RMPRIEN)) Q:'RMPRIEN D
  1. . I $P($G(^DPT(RMPRIEN,.35)),U) Q
  1. . I '$D(^RMPR(665,RMPRIEN,"RMPOA")) Q
  1. . ;I $P($G(^RMPR(665,RMPRIEN,"RMPOA")),U,3) Q ;inactivation date check not checked
  1. . S RMPRSCRP=0 F S RMPRSCRP=$O(^RMPR(665,RMPRIEN,"RMPOB",RMPRSCRP)) Q:'RMPRSCRP D
  1. . . S RMPRREC=^RMPR(665,RMPRIEN,"RMPOB",RMPRSCRP,0) Q:'RMPRREC
  1. . . S RMPRSCDT=$P(RMPRREC,U,3),RMPRYRX=$E(RMPRSCDT,1,3)
  1. . . I RMPRYRX'>RMPRYR Q
  1. . . S RMPRDT1=$$FMTE^XLFDT($P(RMPRREC,U),"5Z"),RMPRDT2=$$FMTE^XLFDT($P(RMPRREC,U,3),"5Z")
  1. . . I $E(RMPRREC,1,3)>316 S ^TMP("RMPR210P",$J,"S",RMPRIEN,RMPRSCRP)=RMPRREC_"^^"_RMPRDT1_" / "_RMPRDT2,RMPRT2=RMPRT2+1 Q
  1. . . S ^TMP("RMPR210P",$J,"C",RMPRIEN,RMPRSCRP)=RMPRREC_"^^"_RMPRDT1_" / "_RMPRDT2_U_RMPRDT1_" / "_RMPRDT1,RMPRT1=RMPRT1+1
  1. . . S ^TMP("RMPR210P",$J,9,RMPRIEN,"RMPOB",RMPRSCRP,0)=RMPRREC
  1. . . S RMPRDT=$P(RMPRREC,U),RMPRDT=$$FMTE^XLFDT(RMPRDT)
  1. . . S DA=RMPRSCRP,DA(1)=RMPRIEN,DIE="^RMPR(665,"_RMPRIEN_",""RMPOB"",",DR="2///^S X=RMPRDT" D ^DIE
  1. S ^TMP("RMPR210P",$J,"T",0)=RMPRT1_U_RMPRT2
  1. QX ;REPORT
  1. N RMPRSP,RMPRPROD,RMPRSITE,RMPRIEN,RMPRSCRP,RMPRREC
  1. K DA,DR,DIE
  1. S $P(RMPRSP," ",40)=""
  1. S RMPRPROD=$$PROD^XUPROD(),RMPRSITE=$P($G(^RMPR(669.9,1,0)),U,1,2)
  1. D BMES^XPDUTL("RESET EXPIRATION DATE >2023")
  1. S RMPRMES="FOR "_$S(RMPRPROD=1:"PRODUCTION",1:"TEST")_" SITE: "_$P(RMPRSITE,U,2)_" - "_$P(RMPRSITE,U)_" ON "_$J($$FMTE^XLFDT(DT,"5Z"),10)
  1. D BMES^XPDUTL(RMPRMES)
  1. S RMPRMES="VETERAN NAME Before/After SCRIPT DATES (ACTIVE/EXPIRATION)"
  1. D BMES^XPDUTL(RMPRMES)
  1. S RMPRMES="============ =============================================" D MES^XPDUTL(RMPRMES)
  1. S RMPRIEN=0
  1. F S RMPRIEN=$O(^TMP("RMPR210P",$J,"C",RMPRIEN)),RMPRSCRP=0 Q:'RMPRIEN D
  1. . D MES^XPDUTL(" ") S RMPRNM=$E($P(^DPT(RMPRIEN,0),U),1,25)
  1. . F S RMPRSCRP=$O(^TMP("RMPR210P",$J,"C",RMPRIEN,RMPRSCRP)) Q:'RMPRSCRP D
  1. . . S RMPRREC=^TMP("RMPR210P",$J,"C",RMPRIEN,RMPRSCRP)
  1. . . S RMPRMES=$$LJSF(RMPRNM,28)_$P(RMPRREC,U,5)_" TO "_$P(RMPRREC,U,6) D MES^XPDUTL(RMPRMES)
  1. S RMPRMES="*** TOTAL: "_$P(^TMP("RMPR210P",$J,"T",0),U) D BMES^XPDUTL(RMPRMES)
  1. D BMES^XPDUTL("")
  1. S RMPRMES="PATIENTS NEEDED TO BE EDITED MANUALLY:" D MES^XPDUTL(RMPRMES) S RMPRIEN=0
  1. S RMPRMES="VETERAN NAME Before SCRIPT DATES (ACTIVE/EXPIRATION)" D BMES^XPDUTL(RMPRMES)
  1. S RMPRMES="============ =============================================" D MES^XPDUTL(RMPRMES)
  1. F S RMPRIEN=$O(^TMP("RMPR210P",$J,"S",RMPRIEN)),RMPRSCRP=0 Q:'RMPRIEN D
  1. . D MES^XPDUTL("") S RMPRNM=$E($P(^DPT(RMPRIEN,0),U),1,25)
  1. . F S RMPRSCRP=$O(^TMP("RMPR210P",$J,"S",RMPRIEN,RMPRSCRP)) Q:'RMPRSCRP D
  1. . . S RMPRREC=^TMP("RMPR210P",$J,"S",RMPRIEN,RMPRSCRP)
  1. . . S RMPRMES=$$LJSF(RMPRNM,28)_$P(RMPRREC,U,5) D MES^XPDUTL(RMPRMES)
  1. D MES^XPDUTL("")
  1. S RMPRMES="TOTAL: "_$P(^TMP("RMPR210P",$J,"T",0),U,2) D MES^XPDUTL(RMPRMES)
  1. D:$G(RMPRPRT)=1 MSG
  1. M ^XTMP("RMPR210P","C")=^TMP("RMPR210P",$J,"C") ;Set XTMP array for backup
  1. M ^XTMP("RMPR210P","S")=^TMP("RMPR210P",$J,"S") ;Set XTMP array for backup
  1. K ^TMP("RMPR210P",$J)
  1. Q
  1. EXIT ;
  1. MSG N XMY,XMDUZ,XMSUB,XMTEXT,BMSG,RMPRIEN,RCCTR,RCIEN,DIFROM,RMPRMKY,RMPRSKY
  1. S XMDUZ=.5
  1. S XMSUB="**** RESET HO SCRIPT EXPIRATION DATES >2023 ***"
  1. S BMSG(1)="The following Home Oxygen script expiration dates after 2023 are listed and"
  1. S BMSG(2)="reset to the linked activity date."
  1. S BMSG(3)=""
  1. S BMSG(4)=$S(RMPRPROD=1:"PRODUCTION",1:"TEST")_" Site: "_$P(RMPRSITE,U,2)_" - "_$P(RMPRSITE,U)
  1. S BMSG(5)=" "
  1. S BMSG(6)="RESET >2023 EXPIRATION DATES TO BE SAME AS ACTIVITY DATE"
  1. S BMSG(7)=" "
  1. S BMSG(8)="VETERAN NAME Before/After SCRIPT DATES (ACTIVE/EXPIRATION)"
  1. S BMSG(9)="============ ============================================="
  1. M ^TMP("RMPR210P",$J,5)=BMSG
  1. S RMPRIEN=0,RCCTR=9
  1. F S RMPRIEN=$O(^TMP("RMPR210P",$J,"C",RMPRIEN)),RMPRSCRP=0 Q:'RMPRIEN D
  1. . S:RCCTR>9 RCCTR=RCCTR+1,^TMP("RMPR210P",$J,5,RCCTR)=""
  1. . F S RMPRSCRP=$O(^TMP("RMPR210P",$J,"C",RMPRIEN,RMPRSCRP)) Q:'RMPRSCRP D
  1. . . S RMPRREC=^TMP("RMPR210P",$J,"C",RMPRIEN,RMPRSCRP),RMPRNM=$E($P(^DPT(RMPRIEN,0),U),1,25)
  1. . . S RCCTR=RCCTR+1,^TMP("RMPR210P",$J,5,RCCTR)=RMPRNM_$E(RMPRSP,1,28-$L(RMPRNM))_$P(RMPRREC,U,5)_" TO "_$P(RMPRREC,U,6)
  1. S RCCTR=RCCTR+1,^TMP("RMPR210P",$J,5,RCCTR)=""
  1. S RCCTR=RCCTR+1,^TMP("RMPR210P",$J,5,RCCTR)="TOTAL: "_$P(^TMP("RMPR210P",$J,"T",0),U)
  1. F RMPRI=1:1:4 S RCCTR=RCCTR+1,^TMP("RMPR210P",$J,5,RCCTR)=""
  1. S RCCTR=RCCTR+1,^TMP("RMPR210P",$J,5,RCCTR)="PATIENTS NEED TO BE EDITED MANUALLY:"
  1. S RCCTR=RCCTR+1,^TMP("RMPR210P",$J,5,RCCTR)=""
  1. S RCCTR=RCCTR+1,^TMP("RMPR210P",$J,5,RCCTR)="VETERAN NAME Before SCRIPT DATES (ACTIVE/EXPIRATION)"
  1. S RCCTR=RCCTR+1,^TMP("RMPR210P",$J,5,RCCTR)="============ ======================================="
  1. S RCCTR=RCCTR+1,^TMP("RMPR210P",$J,5,RCCTR)=""
  1. F S RMPRIEN=$O(^TMP("RMPR210P",$J,"S",RMPRIEN)),RMPRSCRP=0 Q:'RMPRIEN D
  1. . F S RMPRSCRP=$O(^TMP("RMPR210P",$J,"S",RMPRIEN,RMPRSCRP)) Q:'RMPRSCRP D
  1. . . S RMPRREC=^TMP("RMPR210P",$J,"S",RMPRIEN,RMPRSCRP),RMPRNM=$E($P(^DPT(RMPRIEN,0),U),1,25)
  1. . . S RCCTR=RCCTR+1,^TMP("RMPR210P",$J,5,RCCTR)=RMPRNM_$E(RMPRSP,1,30-$L(RMPRNM))_" "_$P(RMPRREC,U,5)
  1. F RMPRI=1,2 S RCCTR=RCCTR+1,^TMP("RMPR210P",$J,5,RCCTR)=""
  1. S RCCTR=RCCTR+1,^TMP("RMPR210P",$J,5,RCCTR)="TOTAL: "_$P(^TMP("RMPR210P",$J,"T",0),U,2)
  1. S XMTEXT="^TMP(""RMPR210P"""_","_$J_",5,"
  1. S XMY(DUZ)="" ;Send mailman message to installer
  1. S RMPRSKY=0 F S RMPRSKY=$O(^XUSEC("RMPRSUPERVISOR",RMPRSKY)) Q:'RMPRSKY S XMY(RMPRSKY)="" ;Send mailman message to holders of RMPRSUPERVISOR security key
  1. S RMPRMKY=0 F S RMPRMKY=$O(^XUSEC("RMPRMANAGER",RMPRMKY)) Q:'RMPRMKY S XMY(RMPRMKY)="" ;Send mailman message to holders of RMPRMANAGER security key
  1. MSG1 D ^XMD
  1. Q
  1. ;
  1. LJSF(X,Y) ;x left justified, y space filled
  1. S X=X_$E(RMPRSP,1,30-$L(X))
  1. Q X
  1. ;