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

DVBACRVA.m

Go to the documentation of this file.
DVBACRVA ;SLC/GRE - ; 01/08/2016
 ;;2.7;AMIE;**193**;AUG 30,2016;Build 84
 ;
 ;Public, Supported ICRs
 ; #2056 - Fileman API - $$GET1^DIQ
 ;
 Q
 ;
GETFAC(RESULT,SORTBY)   ; Extract records from file and sort by State Code
 K ^TMP($J)
 N II,FACNAME,STATE,ST,STATION,STATX,FIEN,FACTYPE,R,F1,F11,F2,F2N
 N VAMCNAME,A1,RES,X,X1
 S (FACNAME,STATE,ST,STATION,STATX,FIEN,FACTYPE,F1,F11,F2,F2N,VAMCNAME)=""
 S (R,II)=0
 ; % IS THE FIRST XREF
 F  S II=$O(^DVB(396.195,II)) Q:II=""  Q:II="B"  D
  . S X=^DVB(396.195,II,0)
  . ;S X1=$G(^DIC(4,II,99))  ;sSTATION NUMBER;$G SETS TO NULL IF RECORD DOES NOT EXIST
  . S FACNAME=$P(X,U,1)
  . S FNAME=$P(FACNAME,"located",1)
  . S ST=$P(X,U,2)
  . S STATION=$$DSTAT(II) Q:STATION=""
  . S:SORTBY="STATE" RES(ST,II)=U_FACNAME_U_II_U_STATION
  . S:SORTBY="NAME" RESULT(FNAME)=U_FACNAME_U_II_U_STATION
 I SORTBY="STATE" S (R,II)=0,ST="" D
  . N CNT S CNT=0
  . F  S ST=$O(RES(ST)) Q:ST=""  D
  .. S II=0
  .. F  S II=$O(RES(ST,II)) Q:II=""  D
  ... S CNT=$G(CNT)+1
  ... S RESULT(CNT)=RES(ST,II)
  Q
  ;
DSTAT(RSI) ; Returns Domain Station Number
  ;
  N DMNI,DMN
  Q:RSI="" 0
  Q:'$D(^DVB(396.195,RSI,0)) 0
  ;
  S DMN=$P(^DVB(396.195,RSI,0),"^",3)
  S DMNI=$O(^DIC(4.2,"B",DMN,""))
  Q:DMNI="" 0
  S STN=$P(^DIC(4.2,DMNI,0),"^",13)
  Q STN
  ;
GETFACNM(RESULT,SORTBY)   ; Extract records from file and sort by State Code
  K ^TMP($J)
  N II,FACNAME,STATE,ST,STATION,STATX,FIEN,FACTYPE,R,F1,F11,F2,F2N
  N VAMCNAME,A1,RES,X,X1
  S (FACNAME,STATE,ST,STATION,STATX,FIEN,FACTYPE,F1,F11,F2,F2N,VAMCNAME)=""
  S (R,II)=0
  ; % IS THE FIRST XREF
  F  S II=$O(^DIC(4,II)) Q:II=""  Q:II="%"  D
  . S X=^DIC(4,II,0),R=0
  . S X1=$G(^DIC(4,II,99))  ;$G SETS TO NULL IF RECORD DOES NOT EXIST
  . S F11=$P(X1,U,4)  ;INACTIVE FLAG - POINTER
  . Q:F11=1  ;QUIT IF F1=INACTIVE=1
  . S F1=$G(^DIC(4,II,3))
  . Q:F1=""
  . S F2=$G(^DIC(4.1,F1,0))
  . S F2N=$P(F2,U,1)
  . S A1=$P(F2,U,1)
  . S FACNAME=$P(X,U,1)
  . I "VAMC"[F2N S R=1
  . I "BVA/VBA-SO"[F2N S R=1
  . I "RO"[F2N S R=1
  . I "CENTRAL OFFICE"[F2N S R=1
  . I "BVA"[F2N S R=1
  . I "M&ROC"[F2N S R=1
  . I "MC&RO"[F2N S R=1
  . I "RO-OC"[F2N S R=1
  . I "RO&IC"[F2N S R=1
  . I "VAMROC"[F2N S R=1
  . I "-RO"[F2N S R=1
  . I "VAHSRO"[F2N S R=1
  . I "TIGER TEAM"[F2N S R=1
  . I II=460 S R=1
  . Q:R=0
  . S FACNAME=$P(X,U,1)
  . S STATE=$P(X,U,2) I STATE="" Q:STATE=""
  . S STATION=$P(X1,U,1)
  . S FIEN=$P(X,U,1)
  . S ST=$$EXTERNAL^DILFD(4,.02,"",STATE)
  . S:SORTBY="STATE" RES(ST,II)=ST_U_FACNAME_U_STATION_U_II_U_A1
  . S:SORTBY="NAME" RESULT(FACNAME)=ST_U_FACNAME_U_STATION_U_II
  I SORTBY="STATE" S (R,II)=0,ST="" D
 . N CNT S CNT=0
 . F  S ST=$O(RES(ST)) Q:ST=""  D
 .. S II=0
 .. F  S II=$O(RES(ST,II)) Q:II=""  D
 ... S CNT=$G(CNT)+1
 ... S RESULT(CNT)=RES(ST,II)
 Q