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

SD53151P.m

Go to the documentation of this file.
  1. SD53151P ;ALB/ABR - DSS CLINIC STOP CODE FILE FOR DISTRIBUTION DRIVER; 9/18/98
  1. ;;5.3;Scheduling;**151**;AUG 13, 1993
  1. ;
  1. ; Driver to update sites 40.7 files to correspond with
  1. ; Nationally Distributed codes. Local codes (450-485)
  1. ; will not be affected.
  1. ;
  1. EN ; driver entry point
  1. N SDI,SDX,SDTX,SDTM
  1. ; Print list of flags used
  1. F SDTX=1:1 S SDTM=$P($T(MSGT+SDTX),";;",2) Q:SDTM="QUIT" D MES^XPDUTL(SDTM)
  1. ;
  1. ; Get data from other routines
  1. F SDI=1:1 S SDX=$P($T(DATA+SDI^SD53151A),";;",2) Q:SDX="QUIT" D UPDATE
  1. F SDI=1:1 S SDX=$P($T(DATA+SDI^SD53151B),";;",2) Q:SDX="QUIT" D UPDATE
  1. Q
  1. ;
  1. UPDATE ;
  1. N DIC,X,Y,DLAYGO,SDA,SDC,SDJ,SDY,SDM,SDZ
  1. S DIC="^DIC(40.7,",DIC(0)="LMXZ",DLAYGO=40.7
  1. S SDC=$P(SDX,U,2),X=$P(SDX,U)
  1. F SDA=0:0 S SDA=$O(^DIC(40.7,"C",SDC,SDA)) Q:'SDA S Y=SDA,Y(0)=$G(^DIC(40.7,Y,0)) D UPD
  1. Q:$G(Y) ; existing data already checked/updated
  1. D ^DIC I Y<0 D BMES^XPDUTL("** Unable to find or add STOP CODE "_SDC),MES^XPDUTL("**Please contact Support")
  1. ;
  1. UPD I $P(Y(0),U)=$P(SDX,U),$P(Y(0),U,2)=$P(SDX,U,2),$P(Y(0),U,3)=$P(SDX,U,3),$P(Y(0),U,5)=$P(SDX,U,4) Q ; no update needed
  1. ;
  1. S SDZ=Y
  1. F SDJ=1:1:4 S SDJ(SDJ)=$P(SDX,U,SDJ) ; from incoming
  1. F SDY=1:1:4 S SDM=SDY S:SDY=4 SDM=5 S SDY(SDY)=$P(Y(0),U,SDM) ; from existing 0-node
  1. F SDJ=3,4 I SDY(SDJ),'SDJ(SDJ) S SDJ(SDJ)="@" ; to delete CDR or inactive dates
  1. D EDIT,MESS
  1. Q
  1. ;
  1. EDIT ; update entries
  1. N DIE,DA,DR,X,Y
  1. S DIE=DIC,DA=+SDZ,DR=".01///"_SDJ(1)_";1///"_SDC_";2///"_SDJ(3)_";4///"_SDJ(4)
  1. D ^DIE
  1. Q
  1. ;
  1. MESS ;
  1. N SDMSG
  1. S SDMSG=" "_SDC
  1. I $P(SDZ,U,3) S SDMSG="+"_SDMSG_" Added: "_SDJ(1)_" CDR: "_SDJ(4) D S SDMSG=SDMSG D MES^XPDUTL(SDMSG) Q
  1. . I SDJ(3),'SDY(3) S SDMSG=SDMSG_" Inactive Date: "_$$FMTE^XLFDT(SDJ(3))
  1. I SDJ(3),'SDY(3) S SDMSG="-"_SDMSG_" Inactivated: "_$$FMTE^XLFDT(SDJ(3)) D MES^XPDUTL(SDMSG) Q
  1. I SDJ(3),SDY(3),SDJ(3)'=SDY(3) S SDMSG="%"_SDMSG_" Inactive Date changed to: "_$$FMTE^XLFDT(SDJ(3)) D MES^XPDUTL(SDMSG) Q
  1. I SDJ(1)'=SDY(1) S SDMSG="*"_SDMSG_" Name Changed to: "_SDJ(1)
  1. I SDJ(4)'=SDY(4) S SDMSG="!"_SDMSG_" Changed CDR: "_$S(SDJ(4):SDJ(4),1:"deleted.")
  1. I SDY(3),'SDJ(3) S SDMSG="&"_SDMSG_" Reactivated"
  1. ;
  1. MSG D MES^XPDUTL(SDMSG)
  1. Q
  1. ;
  1. MSGT ;
  1. ;; Changes are flagged such that:
  1. ;; '+' = Added
  1. ;; '-' = Inactivated
  1. ;; '&' = Reactivated
  1. ;; '%' = Inactive Date changed
  1. ;; '*' = Edited
  1. ;; '!' = CDR changed/deleted
  1. ;;
  1. ;;NOTE - If your list includes multiple entries for a Stop Code,
  1. ;; then you had duplicate entries in your file.
  1. ;;
  1. ;; This update will make ALL entries for a given Stop Code
  1. ;; the same, in order not to corrupt pointers.
  1. ;;
  1. ;;QUIT