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

VASITE.m

Go to the documentation of this file.
  1. VASITE ;ALB/AAS - TIME SENSETIVE VA STATION NUMBER UTILITY ; [ 04/01/2004 5:17 PM ]
  1. ;;5.3;Registration;**134,1004,1009,1012,1013**;Aug 13, 1993
  1. ;IHS/ANMC/LJF 7/31/2001 used IHS location file info
  1. ;IHS/OIT/LJF 11/09/2005 PATCH 1004 added to patch for sites where good copy was overwritten
  1. ;cmi/anch/maw 04/07/2008 PATCH 1009 requirement 54 added fix for no DUZ(2) in SITE
  1. ;
  1. SITE(DATE,DIV) ;
  1. ; -Output= Institution file pointer^Institution name^station number with suffix
  1. ;
  1. ; -Input (optional) date for division, if undefined will use DT
  1. ; - (optional) medical center division=pointer in 40.8
  1. ;
  1. ;IHS/ANMC/LJF 7/31/2001 use IHS location file for data
  1. ;I '$G(DIV) S DIV=+$O(^DG(40.8,"C",DUZ(2),0)) ;cmi/maw 04/07/2008 patch 1009 orig line
  1. ;I '$G(DIV),$G(DUZ(2)) S DIV=+$O(^DG(40.8,"C",DUZ(2),0)) ;cmi/maw 04/07/2008 patch 1009 modified to check for DUZ(2)
  1. I '$G(DIV),$G(DUZ(2)) S DIV=+$O(^DG(40.8,"AD",DUZ(2),0)) ;cmi/maw 04/07/2008 patch 1012 modified to check for "AD" DUZ(2)
  1. ;I '$G(DIV) S DIV=+$O(^DG(40.8,"C",$G(^DD("SITE",1)),0)) ;cmi/maw 04/07/2008 patch 1009 modified if neither DUZ(2) or DIV are set
  1. I '$G(DIV) S DIV=+$O(^DG(40.8,"AD",$G(^DD("SITE",1)),0)) ;cmi/maw 04/07/2008 patch 1012 modified if neither DUZ(2) or DIV are set
  1. NEW X S X=$$GET1^DIQ(40.8,+$G(DIV),.07,"I") I 'X Q -1
  1. ;Q X_U_$$GET1^DIQ(9999999.06,X,.01)_U_$$GET1^DIQ(9999999.06,X,.0799)
  1. Q X_U_$$GET1^DIQ(9999999.06,X,.01)_U_$$GET1^DIQ(4,X,99) ;IHS/ITSC/LJF 4/1/2004
  1. ;IHS/ANMC/LJF 7/31/2001 end of IHS code
  1. ;
  1. N PRIM,SITE
  1. S:'$D(DATE) DATE=DT
  1. S:'$D(DIV) DIV=$$PRIM(DATE)
  1. I DATE'?7N!DIV<0 Q -1
  1. S PRIM=$G(^VA(389.9,+$O(^(+$O(^VA(389.9,"AIVDT",DIV,$$IVDATE(DATE))),0)),0))
  1. S SITE=$S('$P(PRIM,"^",6)&($P(PRIM,"^",4)?3N.AN):$P(PRIM,"^",4),1:-1) ;IHS/ANMC/LJF 9/21/2000
  1. S:SITE>0 SITE=$P(^DG(40.8,DIV,0),"^",7)_"^"_$P($G(^DIC(4,$P(^DG(40.8,DIV,0),"^",7),0)),"^")_"^"_SITE
  1. Q SITE
  1. ;
  1. ALL(DATE) ; -returns all possible station numbers
  1. ; -input date, if date is undefined, then date will be today
  1. ; - output VASITE= 1 or -1 if stations exist
  1. ; VASITE(station number)=station number
  1. ;
  1. N PRIM,DIV
  1. S:'$D(DATE) DATE=DT
  1. S VASITE=-1
  1. ;S DIV=0 F S DIV=$O(^VA(389.9,"C",DIV)) Q:'DIV S PRIM=$G(^VA(389.9,+$O(^(+$O(^VA(389.9,"AIVDT",DIV,$$IVDATE(DATE))),0)),0)) S:'$P(PRIM,"^",6)&($P(PRIM,"^",4)?3N) VASITE($P(PRIM,"^",4))=$P(PRIM,"^",4),VASITE=1 ;IHS/ANMC/LJF 9/21/2000
  1. S DIV=0 F S DIV=$O(^VA(389.9,"C",DIV)) Q:'DIV S PRIM=$G(^VA(389.9,+$O(^(+$O(^VA(389.9,"AIVDT",DIV,$$IVDATE(DATE))),0)),0)) S:'$P(PRIM,"^",6)&($P(PRIM,"^",4)?6N) VASITE($P(PRIM,"^",4))=$P(PRIM,"^",4),VASITE=1 ;IHS/ANMC/LJF 9/21/2000
  1. Q VASITE
  1. ;
  1. IVDATE(DATE) ; -- inverse date reference start
  1. Q -(DATE+.000001)
  1. ;
  1. CHK ; -input transform for IS PRIMARY STATION? field
  1. ; -only 1 primary station number allowed per effective date
  1. ;
  1. I '$P(^VA(389.9,DA,0),"^",2) W !,"Effective Date must be entered first" K X G CHKQ
  1. I '$P(^VA(389.9,DA,0),"^",3) W !,"Medical Center Division must be entered first.",! K X G CHKQ
  1. I $D(^VA(389.9,"AIVDT1",1,-X)) W !,"Another entry Is Primary Division for this date.",! K X G CHKQ
  1. I 1
  1. CHKQ I 0 Q
  1. ;
  1. YN ; -input transform for is primary facility
  1. I '$P(^VA(389.9,DA,0),"^",2) W !,"Effective date must be entered first!" K X Q
  1. I '$P(^VA(389.9,DA,0),"^",3) W !,"Medical Center Division must be entered first!" K X Q
  1. I $D(^VA(389.9,"AIVDT1",1,-$P(^VA(389.9,DA,0),"^",2))) W !,"Only one division can be primary division for an effective date!" K X Q
  1. S X=$E(X),X=$S(X=1:X,X=0:X,X="Y":1,X="y":1,X="n":0,X="N":0,1:2) I X'=2 W " (",$S(X:"YES",1:"NO"),")" Q
  1. W !?4,"NOT A VALID CHOICE!",*7 K X Q
  1. ;
  1. PRIM(DATE) ; -returns medical center division of primary medical center division
  1. ; - input date, if date is null then date will be today
  1. ;
  1. ;Q +$O(^DG(40.8,"C",DUZ(2),0)) ;IHS/ANMC/LJF 7/31/2001
  1. Q +$O(^DG(40.8,"AD",DUZ(2),0)) ;cmi/maw 3/9/2010 PATCH 1012 for station number
  1. N PRIM
  1. S:'$D(DATE) DATE=DT S DATE=DATE+.24
  1. S PRIM=$G(^VA(389.9,+$O(^(+$O(^VA(389.9,"AIVDT1",1,$$IVDATE(DATE))),0)),0))
  1. Q $S($P(PRIM,"^",4)?3N:$P(PRIM,"^",3),1:-1)
  1. ;
  1. NAME(DATE) ; -returns the new name of medical centers that have integrated
  1. ;
  1. ; -input date, if date is null then date will be today
  1. S:'$D(DATE) DATE=DT S DATE=DATE+.24
  1. Q $G(^VA(389.9,+$O(^(+$O(^VA(389.9,"AIVDT1",1,$$IVDATE(DATE))),0)),"INTEG"))