[613] | 1 | HLUCM090 ;CIOFO-O/LJA - Facility Finder Software ;2/20/2003 - 12:35
|
---|
| 2 | ;;1.6;HEALTH LEVEL SEVEN;**103,114**;Oct 13, 1995
|
---|
| 3 | ;
|
---|
| 4 | FACILITY(IEN772) ; Return facility name for REMOTE entries
|
---|
| 5 | ; IMPORTANT!! Do not call here unless the entry is REMOTE
|
---|
| 6 | ;
|
---|
| 7 | N FACNM
|
---|
| 8 | N FACNM,IEN773,LOCAL,MSH,NO773
|
---|
| 9 | ;
|
---|
| 10 | ; Is FAC a local station number?
|
---|
| 11 | S LOCAL=$P($$SITE^VASITE,U,3)_"~"_$P($$SITE^VASITE,U,2)_"~LOCAL"
|
---|
| 12 | ;
|
---|
| 13 | S IEN772=0,FACNM=""
|
---|
| 14 | F S IEN772=$O(IEN772(IEN772)) Q:'IEN772!(FACNM]"") D
|
---|
| 15 | . S FACNM=$$FACNM(+IEN772)
|
---|
| 16 | ;
|
---|
| 17 | Q $S(FACNM]"":FACNM,1:LOCAL)
|
---|
| 18 | ;
|
---|
| 19 | FACNM(IEN772) ; Return FACILITY NAME for one 772 entry...
|
---|
| 20 | N CT,DATA,FACNM,MSH,NO,PROT
|
---|
| 21 | ;
|
---|
| 22 | ; Try to extract from MSH segment in file 773...
|
---|
| 23 | S FACNM=$$MSH773(+IEN772) QUIT:FACNM]"" $$FACDNS(FACNM) ;->
|
---|
| 24 | ;
|
---|
| 25 | ; Try to find MSH in 772...
|
---|
| 26 | S FACNM=$$SEG772(+IEN772) QUIT:FACNM]"" $$FACDNS(FACNM) ;->
|
---|
| 27 | ;
|
---|
| 28 | ; Try to find MSH in 870...
|
---|
| 29 | S FACNM=$$MSH870(+IEN772) QUIT:FACNM]"" $$FACDNS(FACNM) ;->
|
---|
| 30 | ;
|
---|
| 31 | Q ""
|
---|
| 32 | ;
|
---|
| 33 | MSH870(IEN772) ; Find facility name from MSH in 870 OUT QUEUE...
|
---|
| 34 | N CT,DATA,IEN772N,LL,MSH,NO,PROT,PROTS
|
---|
| 35 | ;
|
---|
| 36 | ; Look at parent...
|
---|
| 37 | S IEN772N=+$G(^TMP($J,"HLOAD772","X",+IEN772))
|
---|
| 38 | I IEN772N'>0 S IEN772N=+IEN772
|
---|
| 39 | ;
|
---|
| 40 | S PROT=$P($G(^HL(772,+IEN772N,0)),U,10) QUIT:'PROT "" ;->
|
---|
| 41 | S FACNM="",PROTS=0
|
---|
| 42 | F S PROTS=$O(^ORD(101,+PROT,775,"B",PROTS)) QUIT:'PROTS!(FACNM]"") D
|
---|
| 43 | . S LL=$P($G(^ORD(101,+PROTS,770)),U,7) QUIT:'LL ;->
|
---|
| 44 | . S MSH="",NO=0,CT=0
|
---|
| 45 | . F S NO=$O(^HLCS(870,+LL,2,NO)) Q:MSH]""!('NO)!(CT>10)!(FACNM]"") D
|
---|
| 46 | . . S CT=CT+1
|
---|
| 47 | . . S DATA=$G(^HLCS(870,+LL,2,+NO,1,1,0)) QUIT:$E(DATA,1,3)'="MSH" ;->
|
---|
| 48 | . . S MSH=DATA,FACNM=$$MSHXTRCT(MSH,"O")
|
---|
| 49 | Q FACNM
|
---|
| 50 | ;
|
---|
| 51 | SEG772(IEN772) ; Try to find SEGment in 772, and extract facility...
|
---|
| 52 | N SEG,WAY
|
---|
| 53 | S WAY=$P($G(^HL(772,+IEN772,0)),U,4) QUIT:WAY']"" "" ;->
|
---|
| 54 | S SEG=$G(^HL(772,+IEN772,"IN",1,0))
|
---|
| 55 | I $E(SEG,1,3)="MSH" QUIT $$MSHXTRCT(SEG,WAY) ;->
|
---|
| 56 | I $E(SEG,1,3)="SPR" QUIT $$SPRXTRCT(IEN772,SEG) ;->
|
---|
| 57 | Q ""
|
---|
| 58 | ;
|
---|
| 59 | MSH773(IEN772) ; Try to extract from MSH segment in file 773...
|
---|
| 60 | N FACNM,IEN773,NO773
|
---|
| 61 | S NO773=$$IEN773(IEN772,.IEN773)
|
---|
| 62 | I NO773 S FACNM=$O(IEN773("")) QUIT:FACNM]"" FACNM ;->
|
---|
| 63 | Q ""
|
---|
| 64 | ;
|
---|
| 65 | IEN773(IEN772,IEN773) ; Find associated 773 entries...
|
---|
| 66 | N DEL,IEN,MSH,RFN,VAL,WAY
|
---|
| 67 | ;
|
---|
| 68 | KILL IEN773
|
---|
| 69 | S IEN773=0
|
---|
| 70 | ;
|
---|
| 71 | S IEN=0
|
---|
| 72 | F S IEN=$O(^HLMA("B",+IEN772,IEN)) Q:'IEN D
|
---|
| 73 | . S VAL=$G(^HLMA(+IEN,0)) QUIT:VAL']"" ;->
|
---|
| 74 | . S WAY=$P(VAL,U,3) QUIT:WAY']"" ;->
|
---|
| 75 | . S MSH=$G(^HLMA(+IEN,"MSH",1,0)) QUIT:MSH']"" ;->
|
---|
| 76 | . S RFN=$$MSHXTRCT(MSH,WAY) QUIT:RFN']"" ;->
|
---|
| 77 | . S IEN773(RFN,+IEN)=WAY
|
---|
| 78 | . S IEN773(RFN)=$G(IEN773(RFN))+1
|
---|
| 79 | . S IEN773=$G(IEN773)+1
|
---|
| 80 | ;
|
---|
| 81 | Q +IEN773
|
---|
| 82 | ;
|
---|
| 83 | MSHXTRCT(MSH,WAY) ; Given I/O WAY and MSH segment, return facility
|
---|
| 84 | N DEL,RFN,X
|
---|
| 85 | S DEL=$E(MSH,4)
|
---|
| 86 | S RFN=$P(MSH,DEL,$S(WAY="I":4,WAY="O":6,1:999)) QUIT:RFN']"" "" ;->
|
---|
| 87 | I RFN?3N!(RFN?3N1U.E) S X=$$FRSTANO(RFN) S:X]"" RFN=X
|
---|
| 88 | Q RFN
|
---|
| 89 | ;
|
---|
| 90 | SPRXTRCT(IEN772,SPR) ; Given SPR segment, extract facility
|
---|
| 91 | N CHAR,DIV,I773,MSH
|
---|
| 92 | S I773=$O(^HLMA("B",+IEN772,0))
|
---|
| 93 | S MSH=$G(^HLMA(+I773,"MSH",1,0))
|
---|
| 94 | S DIV=$E(MSH,7)
|
---|
| 95 | S:DIV']"" DIV="\"
|
---|
| 96 | Q $P(SPR,DIV,5)
|
---|
| 97 | ;
|
---|
| 98 | FRSTANO(STANO) ;
|
---|
| 99 | N IEN,NM
|
---|
| 100 | S IEN=$O(^DIC(4,"D",STANO,0)) QUIT:IEN'>0 "" ;->
|
---|
| 101 | S NM=$P($G(^DIC(4,+IEN,0)),U)
|
---|
| 102 | QUIT NM
|
---|
| 103 | ;
|
---|
| 104 | ACCUMFAC ; Create ^TMP(TOTALS,$J,"RFAC") data...
|
---|
| 105 | N INFO,PARENT,TYPE
|
---|
| 106 | ;
|
---|
| 107 | D ACCUMLAT^HLUCM009("RFAC","LR","R",FAC,DATA("PCKG"),START,DATA("PROT"))
|
---|
| 108 | ;
|
---|
| 109 | S TOTCURR=$G(^TMP(TOTALS,$J,"RFAC"))
|
---|
| 110 | D INCR^HLUCM001
|
---|
| 111 | S ^TMP(TOTALS,$J,"RFAC")=TOTCURR
|
---|
| 112 | ;
|
---|
| 113 | Q
|
---|
| 114 | ;
|
---|
| 115 | INST870(IEN772,INST) ;
|
---|
| 116 | N INST870,LINK
|
---|
| 117 | S LINK=$$LINK(IEN772) QUIT:LINK'>0 "" ;->
|
---|
| 118 | S INST870=+$P($G(^HLCS(870,+LINK,0)),U,2)
|
---|
| 119 | QUIT $S(INST870>0&(INST870'=INST):"R",1:"L")
|
---|
| 120 | ;
|
---|
| 121 | MAIL870(IEN772) ;
|
---|
| 122 | N LINK,MAIL
|
---|
| 123 | S LINK=$$LINK(IEN772) QUIT:LINK'>0 "" ;->
|
---|
| 124 | S MAIL=$P($G(^HLCS(870,+LINK,0)),U,3)
|
---|
| 125 | QUIT $S(MAIL=1:"R",1:"L")
|
---|
| 126 | ;
|
---|
| 127 | LINK(IEN772) ;
|
---|
| 128 | N IEN773,LINK
|
---|
| 129 | S LINK=$P($G(^HL(772,IEN772,0)),U,11)
|
---|
| 130 | I LINK'>0 D
|
---|
| 131 | . S IEN773=$O(^HLMA("B",IEN772,0)) QUIT:IEN773'>0 ;->
|
---|
| 132 | . S LINK=$P($G(^HLMA(+IEN773,0)),U,7)
|
---|
| 133 | QUIT LINK
|
---|
| 134 | ;
|
---|
| 135 | PRINTDBG ; Print data in ^TMP($J,"HLUCMSTORE")
|
---|
| 136 | N CHAR,CT,IEN772,IEN773,IOINHI,IOINORM,LP,PAUSE,PRINT
|
---|
| 137 | N S1,S2,SKIP,ST,STOP,VAL
|
---|
| 138 | I $G(JOBN)']"" N JOBN S JOBN=$J
|
---|
| 139 | S X="IOINHI;IOINORM" D ENDR^%ZISS
|
---|
| 140 | S LP=$NA(^TMP(JOBN,"HLUCMSTORE")),ST=$P(LP,")")_","
|
---|
| 141 | ;
|
---|
| 142 | R !!,"Print T nodes(Y/N): No// ",ANS:999 Q:ANS[U ;->
|
---|
| 143 | S SKIP=$S(ANS=""!(ANS="N"):"",1:"T")
|
---|
| 144 | ;
|
---|
| 145 | R !!,"Print X nodes(Y/N): No// ",ANS:999 Q:ANS[U ;->
|
---|
| 146 | S SKIP=SKIP_$S(ANS=""!(ANS="N"):"",1:"X")
|
---|
| 147 | ;
|
---|
| 148 | R !!,"Print U nodes(Y/N): Yes// ",ANS:999 Q:ANS[U ;->
|
---|
| 149 | S SKIP=SKIP_$S(ANS=""!(ANS="Y"):"U",1:"")
|
---|
| 150 | ;
|
---|
| 151 | S CT=0,PAUSE=1,STOP=0
|
---|
| 152 | F S LP=$Q(@LP) Q:LP'[ST!(STOP) D
|
---|
| 153 | . S X=$E($TR($P(LP,",",3),"""","")_" ") I SKIP'[X QUIT ;->
|
---|
| 154 | . S DATA=$P(LP,ST,2,99)_"=",PX=$L(DATA),DATA=IOINHI_DATA_IOINORM_@LP
|
---|
| 155 | . F D Q:DATA']"" Q:STOP
|
---|
| 156 | . . S PRINT=$E(DATA,1,77),DATA=$E(DATA,78,999)
|
---|
| 157 | . . I DATA]"" S DATA=$$REPEAT^XLFSTR(" ",PX)_DATA
|
---|
| 158 | . . W !,PRINT
|
---|
| 159 | . QUIT:'PAUSE ;->
|
---|
| 160 | . S CT=CT+1 QUIT:CT<22 ;->
|
---|
| 161 | . W " ",IOINHI,"<",IOINORM
|
---|
| 162 | . R X:999 S:X[U STOP=1 S:X=" " PAUSE=0
|
---|
| 163 | . S CT=0
|
---|
| 164 | QUIT
|
---|
| 165 | ;
|
---|
| 166 | PRINT1 ;
|
---|
| 167 | N DATA,L1,L2,L3,L4,L5,LAST,TOT,TOT1,TOT2,TOT3,TYP
|
---|
| 168 | PRINT2 I $G(GBL)']"" N GBL S GBL="^TMP("""_SUB_""","_JOBN_")"
|
---|
| 169 | S (TOT,TOT1,TOT2,TOT3)=0
|
---|
| 170 | I $O(@GBL@(""))']"" D QUIT ;->
|
---|
| 171 | . S X=$$BTE^HLCSMON("No data found. Press RETURN to continue... ",1)
|
---|
| 172 | S X=$$BTE^HLCSMON("About to print ^TMP("""_$G(SUB)_""",$J) data report. Press RETURN...",1)
|
---|
| 173 | W !!," Total Total Total Main"
|
---|
| 174 | W !,"#Chars #Msgs #Sec Sort Sub1 Sub2 Sub3"
|
---|
| 175 | W !,$$REPEAT^XLFSTR("=",IOM)
|
---|
| 176 | S L1=""
|
---|
| 177 | F S L1=$O(@GBL@(L1)) Q:L1']"" D
|
---|
| 178 | . S (TOT1,TOT2,TOT3)=0
|
---|
| 179 | . S L2=""
|
---|
| 180 | . F S L2=$O(@GBL@(L1,L2)) Q:L2']"" D
|
---|
| 181 | . . S L3=""
|
---|
| 182 | . . F S L3=$O(@GBL@(L1,L2,L3)) Q:L3']"" D
|
---|
| 183 | . . . S L4=""
|
---|
| 184 | . . . F S L4=$O(@GBL@(L1,L2,L3,L4)) Q:L4']"" D
|
---|
| 185 | . . . . S TOT=$G(@GBL@(L1,L2,L3,L4))
|
---|
| 186 | . . . . W !,$J(+TOT,6),?8,$J($P(TOT,U,2),6),?16,$J($P(TOT,U,3),6)
|
---|
| 187 | . . . . W ?24,L1,?29,L2,?34,L3,?39,$S($L(L4)<42:L4,1:$E(L4,1,40)_"~")
|
---|
| 188 | . . . . I L1="NMSP",L2'="IO" QUIT ;->
|
---|
| 189 | . . . . S TOT1=TOT1+$P(TOT,U),TOT2=TOT2+$P(TOT,U,2),TOT3=TOT3+$P(TOT,U,3)
|
---|
| 190 | . . . I L1="NMSP" S X=$O(@GBL@(L1,L2,L3)) I X]"",L3'=X W:WAY=1 !
|
---|
| 191 | . . I L1="NMSP" S X=$O(@GBL@(L1,L2)) I X]"",L2'=X W:WAY=1 !
|
---|
| 192 | . I WAY=1 W !,$$REPEAT^XLFSTR("-",IOM),!,$J(TOT1,6),?8,$J(TOT2,6),?16,$J(TOT3,6),!
|
---|
| 193 | Q
|
---|
| 194 | ;
|
---|
| 195 | FACDNS(FAC) ; Return STA#~STA-NAME~DNS if remote...
|
---|
| 196 | N FACNM,LOCAL
|
---|
| 197 | ;
|
---|
| 198 | ; Is FAC a local station number?
|
---|
| 199 | S LOCAL=$P($$SITE^VASITE,U,3)_"~"_$P($$SITE^VASITE,U,2)_"~LOCAL"
|
---|
| 200 | I +FAC=+LOCAL QUIT LOCAL ;->
|
---|
| 201 | ;
|
---|
| 202 | ; FAC not a station number, or not local...
|
---|
| 203 | S FACNM=$$FACFROM(FAC)
|
---|
| 204 | ;
|
---|
| 205 | I +FACNM'>0 QUIT LOCAL ;-> No site number found...
|
---|
| 206 | I +FACNM=+LOCAL QUIT LOCAL ;-> Local site number...
|
---|
| 207 | ;
|
---|
| 208 | QUIT:FACNM]"" FACNM ;->
|
---|
| 209 | ;
|
---|
| 210 | Q LOCAL
|
---|
| 211 | ;
|
---|
| 212 | FACFROM(FAC) ; Find STA#~STA-NAME~DNS if remote...
|
---|
| 213 | N D,DIC,FACNM,STANO,X,Y
|
---|
| 214 | ;
|
---|
| 215 | QUIT:$G(FAC)']"" "" ;-> If no station number...
|
---|
| 216 | ;
|
---|
| 217 | ; Initial build of facility conversions...
|
---|
| 218 | D:'$D(^TMP($J,"HL4")) BLDHL4
|
---|
| 219 | ;
|
---|
| 220 | ; If facility is in facility conversion in ^TMP($J,"HL4")...
|
---|
| 221 | S FACNM=$G(^TMP($J,"HL4",FAC)) QUIT:FACNM]"" FACNM ;->
|
---|
| 222 | ;
|
---|
| 223 | ; Try to look up. (See Integration Agreement# 10090)
|
---|
| 224 | ;
|
---|
| 225 | ; Pure station number lookup if leading 3 station number digits...
|
---|
| 226 | ; Otherwise, use the FACility name...
|
---|
| 227 | S DIC="^DIC(4,",DIC(0)="FMO",D="B^D",X=$S(+FAC?3N:+FAC,1:FAC)
|
---|
| 228 | D MIX^DIC1
|
---|
| 229 | ;
|
---|
| 230 | D FACVAR
|
---|
| 231 | ;
|
---|
| 232 | ; Success...
|
---|
| 233 | I FACNM]"" D QUIT FACNM ;->
|
---|
| 234 | . S FACNM=STANO_"~"_FACNM_"~DNS"
|
---|
| 235 | . S ^TMP($J,"HL4",FAC)=FACNM
|
---|
| 236 | ;
|
---|
| 237 | ; Failed lookup...
|
---|
| 238 | I FACNM']"",+FAC'?3N QUIT "" ;-> Lookup on alpha facility name
|
---|
| 239 | I FACNM']"",+FAC=FAC QUIT "" ;-> Lookup on pure 3 digit station #
|
---|
| 240 | ;
|
---|
| 241 | ; Failed on lookup on ###, so try ###A...
|
---|
| 242 | KILL D,DIC,X,Y
|
---|
| 243 | S DIC="^DIC(4,",DIC(0)="FMO",D="B^D",X=FAC
|
---|
| 244 | ;
|
---|
| 245 | D FACVAR
|
---|
| 246 | ;
|
---|
| 247 | ; Success...
|
---|
| 248 | I FACNM]"" D QUIT FACNM ;->
|
---|
| 249 | . S FACNM=STANO_"~"_FACNM_"~DNS"
|
---|
| 250 | . S ^TMP($J,"HL4",FAC)=FACNM
|
---|
| 251 | ;
|
---|
| 252 | Q ""
|
---|
| 253 | ;
|
---|
| 254 | FACVAR ; Set up variables...
|
---|
| 255 | N DIC,X
|
---|
| 256 | S FACNO=+$G(Y),FACNM=$P($G(Y),U,2),STANO="" ; HL*1.6*114
|
---|
| 257 | QUIT:FACNO'>0 ;->
|
---|
| 258 | S DIC=4,DR="99",DA=+FACNO,DIQ="DATA(",DIQ(0)="E"
|
---|
| 259 | D EN^DIQ1
|
---|
| 260 | S STANO=$G(DATA(4,+FACNO,99,"E"))
|
---|
| 261 | Q
|
---|
| 262 | ;
|
---|
| 263 | BLDHL4 ; Build facility conversions...
|
---|
| 264 | N I,T F I=2:1 S T=$T(BLDHL4+I) Q:T'[";;" S T=$P(T,";;",2,99),^TMP($J,"HL4",$P(T,U))=$P(T,U,2)
|
---|
| 265 | ;;200M^200M~MPI~DNS
|
---|
| 266 | ;;AUSTIN^200~AUSTIN~DNS
|
---|
| 267 | Q
|
---|
| 268 | ;
|
---|
| 269 | EOR ;HLUCM090 - Facility Finder Software ;2/20/2003 - 12:35
|
---|