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

BDGP1005.m

Go to the documentation of this file.
  1. BDGP1005 ;IHS/OIT/LJF - PRE & POST INSTALL, ENVIRON CHECK FOR PATCH 1005
  1. ;;5.3;PIMS;**1005**;MAY 28, 2004
  1. ;
  1. CKENV ; environment check code
  1. ;Prevents "Disable Options..." and "Move Routines..." questions
  1. S XPDDIQ("XPZ1")=0,XPPDIQ("XPZ2")=0
  1. ;
  1. ; now check for patch 1004
  1. NEW PATCH S PATCH="PIMS*5.3*1004"
  1. I '$$PATCH(PATCH) D Q
  1. . W !,"You must first install "_PATCH_"." S XPDQUIT=2
  1. ;
  1. ; check for test version of patch 1004
  1. I $$TEST(PATCH) D Q
  1. . W !,"You have a TEST version of "_PATCH_" installed. Please install the released patch. . ."
  1. . S XPDQUIT=2
  1. ;
  1. Q
  1. PATCH(X) ;return 1 if patch X was installed, X=aaaa*nn.nn*nnnn
  1. ;copy of code from XPDUTL but modified to handle 4 digit IHS patch numbers
  1. Q:X'?1.4UN1"*"1.2N1"."1.2N.1(1"V",1"T").2N1"*"1.4N 0
  1. NEW NUM,I,J
  1. S I=$O(^DIC(9.4,"C",$P(X,"*"),0)) Q:'I 0
  1. S J=$O(^DIC(9.4,I,22,"B",$P(X,"*",2),0)),X=$P(X,"*",3) Q:'J 0
  1. ;check if patch is just a number
  1. Q:$O(^DIC(9.4,I,22,J,"PAH","B",X,0)) 1
  1. S NUM=$O(^DIC(9.4,I,22,J,"PAH","B",X_" SEQ"))
  1. Q (X=+NUM)
  1. ;
  1. TEST(X) ; return 1 if site is running an iteration version of patch
  1. NEW IEN
  1. S IEN=$O(^XPD(9.6,"B",X,0)) I 'IEN Q 1 ;not test version but bad xref
  1. I $G(^XPD(9.6,IEN,1,1,0))["ITERATION #" Q 1
  1. Q 0
  1. ;
  1. PRE ;EP;
  1. Q
  1. ;
  1. POST ;EP; post install code
  1. D AGE,PROT1,PROT2,PREFIX,AUTHBED
  1. Q
  1. ;
  1. AGE ; fix code in ADT ITEM to use AGE^AUPNPAT instead of delelted line AGE^BDGF2
  1. D BMES^XPDUTL("Updating AGE code in ADT ITEMS file . . .")
  1. NEW IEN,STR,CALL
  1. S IEN=0 F S IEN=$O(^BDGITM(IEN)) Q:'IEN D
  1. . Q:$G(^BDGITM(IEN,1))'["AGE^BDGF2"
  1. . S STR=^BDGITM(IEN,1),CALL("AGE^BDGF2")="AGE^AUPNPAT",STR=$$REPLACE^XLFSTR(STR,.CALL)
  1. . S ^BDGITM(IEN,1)=STR
  1. Q
  1. ;
  1. PROT1 ; switch Rx Profiles with Other Reports under BSDAM MENU protocol menu
  1. NEW PROT,OLD,NEW,IEN,DIE,DA,DR
  1. S PROT=$O(^ORD(101,"B","BSDAM MENU",0)) Q:'PROT
  1. S OLD=$O(^ORD(101,"B","BSDAM RX PROFILES",0)) Q:'OLD
  1. S NEW=$O(^ORD(101,"B","BSDAM OTHER REPORTS",0)) Q:'NEW
  1. S IEN=$O(^ORD(101,PROT,10,"B",OLD,0)) Q:'IEN
  1. D BMES^XPDUTL("Switching Rx Profiles for Other Reports under AM . . .")
  1. ;
  1. S DIE="^ORD(101,"_PROT_",10,",DA(1)=PROT,DA=IEN
  1. S DR=".01///`"_NEW_";2///OR"
  1. D ^DIE
  1. Q
  1. ;
  1. PROT2 ; fix entry action for BSDAM ADD ENCOUNTER (only run at check-in)
  1. NEW X
  1. S X=$O(^ORD(101,"B","BSDAM ADD ENCOUNTER",0)) Q:'X
  1. D BMES^XPDUTL("Fixing Scheduling Event Driver - add to file 409.68 only at check-in . . .")
  1. S ^ORD(101,X,20)="I $G(SDAMEVT)=4 D APPT^SDVSIT(DFN,SDT,SDCL,$G(BSDVSTN))"
  1. Q
  1. ;
  1. PREFIX ; remove all additional prefixes to PIMS Package file entry
  1. NEW PKG,IEN,PFX,DD,DO,DIC,DA,FIRST
  1. S PKG=$O(^DIC(9.4,"C","PIMS",0)) Q:'PKG
  1. S DIK="^DIC(9.4,"_PKG_",14,"
  1. S FIRST=1
  1. F PFX="BDG","BSD","DG","SD","SC","VADPT" D
  1. . Q:'$D(^DIC(9.4,PKG,14,"B",PFX)) ;skip if not there
  1. . I FIRST D BMES^XPDUTL("Adding all Prefixes to PIMS package file entry. . . ") S FIRST=0
  1. . S DA(1)=PKG,DA=$O(^DIC(9.4,PKG,14,"B",PFX,0)) I DA D ^DIK
  1. Q
  1. ;
  1. AUTHBED ; copy authorized bed info to new data structure
  1. NEW CENI,WARD,DONE,FIELD,BEDS,DIC,DLAYGO,DA,DIE,DR,X,Y
  1. ; first see if this has already been run
  1. S DONE=0,WARD=0 F S WARD=$O(^BDGWD(WARD)) Q:'WARD Q:DONE D
  1. . I $O(^BDGWD(WARD,2,0)) S DONE=1
  1. Q:DONE
  1. ;
  1. D BMES^XPDUTL("Copying authorized bed counts into a multiple . . .")
  1. ; if not, copy into multiple using census init date
  1. S CENI=$$GET1^DIQ(43,1,10,"I") ;census intialization date
  1. S WARD=0 F S WARD=$O(^BDGWD(WARD)) Q:'WARD D
  1. . F FIELD=102,103,111,112,113,114,115,116,117,118,119 D
  1. . . S BEDS=$$GET1^DIQ(9009016.5,WARD,FIELD) Q:BEDS<1
  1. . . S DIC="^BDGWD("_WARD_",2,",DIC(0)="L",DLAYGO=9009015.52
  1. . . S DA(1)=WARD,X=CENI K DD,DO D FILE^DICN Q:'Y
  1. . . S DIE=DIC,DA=+Y,DR=".03///"_BEDS_";.02///"_$P($T(@FIELD),";;",2)
  1. . . D ^DIE
  1. Q
  1. ;
  1. FIELD ;;
  1. 102 ;;IC;;
  1. 103 ;;PC;;
  1. 111 ;;AM;;
  1. 112 ;;AS;;
  1. 113 ;;PM;;
  1. 114 ;;PS;;
  1. 115 ;;OB;;
  1. 116 ;;NB;;
  1. 117 ;;TB;;
  1. 118 ;;AL;;
  1. 119 ;;MH;;