- DMSQT1 ;SFISC/EZ-STATUS CHECK ;11/13/97 12:08
- ;;22.2;VA FileMan;;Jan 05, 2016;Build 42
- ;;Per VA Directive 6402, this routine should not be modified.
- ;;Submitted to OSEHRA 5 January 2015 by the VISTA Expertise Network.
- ;;Based on Medsphere Systems Corporation's MSC FileMan 1051.
- ;;Licensed under the terms of the Apache License, Version 2.0.
- ;
- Q
- WAIT() ; extrinsic function, checks if SQLI is running (you must wait)
- ; returns 1 if nodes in ^DMSQ are changing, null otherwise
- D DT^DICRW N J,FLG,DM S FLG=""
- D SET H 2 D CHK
- I FLG Q 1
- E Q ""
- SET ; set the DM array with current record counts
- S J=""
- F S J=$O(^DMSQ(J)) Q:J="" S DM(J)=$P(^(J,0),U,3)
- Q
- CHK ; check whether the counts have changed
- S J=""
- F S J=$O(^DMSQ(J)) Q:J="" S:DM(J)'=$P(^(J,0),U,3) FLG=1
- Q
- IDX(TI) ; extrinsic function, checks for indexes on table TI
- ; returns 1 if there are more indexes to process
- ; see INDEX^DMSQF2 for similar index checking code
- N F,FI,IN,I,IF,IX,CI,FLG D DT^DICRW S FLG=""
- S F=$P(^DMSQ("T",TI,0),U,7)
- S FI=0 F S FI=$O(^DD(F,FI)) Q:'FI D
- . S IN=0 F S IN=$O(^DD(F,FI,1,IN)) Q:'IN D
- .. S I=$G(^DD(F,FI,1,IN,0))
- .. I $P(I,U,3)]"" Q ; not a regular index
- .. I I="" Q ; no data at DD location
- .. S IF=+I,IX=$P(I,U,2) I IX=""!'IF Q ; no file # or index name
- .. I $G(^DD(F,FI,1,IN,1))'[",DA)" Q ; last subscript isn't DA
- .. S CI=$O(^DMSQ("C","D",F,FI,"")) Q:'CI ; missing column
- .. S FLG=2 ; this index is a candidate for projection
- I FLG=2 Q 1
- E Q ""
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDMSQT1 1532 printed Feb 19, 2025@00:21:32 Page 2
- DMSQT1 ;SFISC/EZ-STATUS CHECK ;11/13/97 12:08
- +1 ;;22.2;VA FileMan;;Jan 05, 2016;Build 42
- +2 ;;Per VA Directive 6402, this routine should not be modified.
- +3 ;;Submitted to OSEHRA 5 January 2015 by the VISTA Expertise Network.
- +4 ;;Based on Medsphere Systems Corporation's MSC FileMan 1051.
- +5 ;;Licensed under the terms of the Apache License, Version 2.0.
- +6 ;
- +7 QUIT
- WAIT() ; extrinsic function, checks if SQLI is running (you must wait)
- +1 ; returns 1 if nodes in ^DMSQ are changing, null otherwise
- +2 DO DT^DICRW
- NEW J,FLG,DM
- SET FLG=""
- +3 DO SET
- HANG 2
- DO CHK
- +4 IF FLG
- QUIT 1
- +5 IF '$TEST
- QUIT ""
- SET ; set the DM array with current record counts
- +1 SET J=""
- +2 FOR
- SET J=$ORDER(^DMSQ(J))
- if J=""
- QUIT
- SET DM(J)=$PIECE(^(J,0),U,3)
- +3 QUIT
- CHK ; check whether the counts have changed
- +1 SET J=""
- +2 FOR
- SET J=$ORDER(^DMSQ(J))
- if J=""
- QUIT
- if DM(J)'=$PIECE(^(J,0),U,3)
- SET FLG=1
- +3 QUIT
- IDX(TI) ; extrinsic function, checks for indexes on table TI
- +1 ; returns 1 if there are more indexes to process
- +2 ; see INDEX^DMSQF2 for similar index checking code
- +3 NEW F,FI,IN,I,IF,IX,CI,FLG
- DO DT^DICRW
- SET FLG=""
- +4 SET F=$PIECE(^DMSQ("T",TI,0),U,7)
- +5 SET FI=0
- FOR
- SET FI=$ORDER(^DD(F,FI))
- if 'FI
- QUIT
- Begin DoDot:1
- +6 SET IN=0
- FOR
- SET IN=$ORDER(^DD(F,FI,1,IN))
- if 'IN
- QUIT
- Begin DoDot:2
- +7 SET I=$GET(^DD(F,FI,1,IN,0))
- +8 ; not a regular index
- IF $PIECE(I,U,3)]""
- QUIT
- +9 ; no data at DD location
- IF I=""
- QUIT
- +10 ; no file # or index name
- SET IF=+I
- SET IX=$PIECE(I,U,2)
- IF IX=""!'IF
- QUIT
- +11 ; last subscript isn't DA
- IF $GET(^DD(F,FI,1,IN,1))'[",DA)"
- QUIT
- +12 ; missing column
- SET CI=$ORDER(^DMSQ("C","D",F,FI,""))
- if 'CI
- QUIT
- +13 ; this index is a candidate for projection
- SET FLG=2
- End DoDot:2
- End DoDot:1
- +14 IF FLG=2
- QUIT 1
- +15 IF '$TEST
- QUIT ""