| 1 | KMPDU5 ;OAK/RAK - CM Tools Utilities ;8/25/04  08:56 | 
|---|
| 2 | ;;2.0;CAPACITY MANAGEMENT TOOLS;**2**;Mar 22, 2002 | 
|---|
| 3 | ; | 
|---|
| 4 | FILEINQ(KMPDY,KMPDFN,KMPDIEN,KMPDGBL) ;-- file inquiry. | 
|---|
| 5 | ;----------------------------------------------------------------------- | 
|---|
| 6 | ; KMPDFN.... File number. | 
|---|
| 7 | ; KMPDIEN... Ien for above file. | 
|---|
| 8 | ; KMPDGBL... Global where data is stored. | 
|---|
| 9 | ;----------------------------------------------------------------------- | 
|---|
| 10 | ; | 
|---|
| 11 | K KMPDY | 
|---|
| 12 | ; | 
|---|
| 13 | I '$G(KMPDFN) S KMPDY="[File Number not defined]" Q | 
|---|
| 14 | I '$D(^DD(KMPDFN)) S KMPDY="[File #"_KMPDFN_" is not defined]" Q | 
|---|
| 15 | ; | 
|---|
| 16 | I '$G(KMPDIEN) S KMPDY="[IEN not defined]" Q | 
|---|
| 17 | ; | 
|---|
| 18 | I KMPDGBL="" S KMPDY="[Global for storage is not defined]" Q | 
|---|
| 19 | ; | 
|---|
| 20 | N ARRAY,CNT,DATA,ERROR,FIELD,FILE,I,IEN,LN,TITLE | 
|---|
| 21 | ; | 
|---|
| 22 | ; kill global with check for ^tmp or ^utility. | 
|---|
| 23 | D KILL^KMPDU(.DATA,KMPDGBL) | 
|---|
| 24 | ; if error. | 
|---|
| 25 | I $E(DATA)="[" S KMPDY=DATA Q | 
|---|
| 26 | ; | 
|---|
| 27 | S ARRAY=$NA(^TMP("KMPD FILE INQ",$J)) | 
|---|
| 28 | K @ARRAY | 
|---|
| 29 | ; | 
|---|
| 30 | S FIELD="**" | 
|---|
| 31 | I KMPDFN=9.4 S FIELD="" D | 
|---|
| 32 | .F I=0:0 S I=$O(^DD(KMPDFN,I)) Q:'I  D | 
|---|
| 33 | ..I $P($G(^DD(KMPDFN,I,0)),U,2)'["C"&($P($G(^(0)),U,2)'["M")&($E($G(^(0)))'="*")&($P($G(^(0)),U,3)'="") S FIELD=FIELD_I_";" | 
|---|
| 34 | .S FIELD=FIELD_"3;" ;4;5;" | 
|---|
| 35 | ; | 
|---|
| 36 | D GETS^DIQ(KMPDFN,KMPDIEN,FIELD,"R",ARRAY,"ERROR") | 
|---|
| 37 | ; | 
|---|
| 38 | I $D(ERROR) S KMPDY="[Error occurred while getting info.]" Q | 
|---|
| 39 | ; | 
|---|
| 40 | I '$D(@ARRAY) S KMPDY="<No Data to Report>" Q | 
|---|
| 41 | ; | 
|---|
| 42 | S FILE="",LN=0 | 
|---|
| 43 | F  S FILE=$O(@ARRAY@(FILE)) Q:FILE=""  D | 
|---|
| 44 | .S IEN="" | 
|---|
| 45 | .F  S IEN=$O(@ARRAY@(FILE,IEN)) Q:IEN=""  D | 
|---|
| 46 | ..S FIELD="" | 
|---|
| 47 | ..F  S FIELD=$O(@ARRAY@(FILE,IEN,FIELD)) Q:FIELD=""  D | 
|---|
| 48 | ...; if not a multiple. | 
|---|
| 49 | ...I '$O(@ARRAY@(FILE,IEN,FIELD,0)) D  Q | 
|---|
| 50 | ....S @KMPDGBL@(LN)=FIELD,@KMPDGBL@(LN)=@KMPDGBL@(LN)_$$REPEAT^XLFSTR(".",30-$L(@KMPDGBL@(LN))) | 
|---|
| 51 | ....S @KMPDGBL@(LN)=@KMPDGBL@(LN)_": "_@ARRAY@(FILE,IEN,FIELD) | 
|---|
| 52 | ....S LN=LN+1 | 
|---|
| 53 | ...; | 
|---|
| 54 | ...; if multiple | 
|---|
| 55 | ...S @KMPDGBL@(LN)=FIELD | 
|---|
| 56 | ...S @KMPDGBL@(LN)=@KMPDGBL@(LN)_$$REPEAT^XLFSTR(".",30-$L(@KMPDGBL@(LN))) | 
|---|
| 57 | ...S @KMPDGBL@(LN)=@KMPDGBL@(LN)_": " | 
|---|
| 58 | ...;S LN=LN+1 | 
|---|
| 59 | ...S CNT=1 | 
|---|
| 60 | ...F I=0:0 S I=$O(@ARRAY@(FILE,IEN,FIELD,I)) Q:'I  D | 
|---|
| 61 | ....;S @KMPDGBL@(LN)=FIELD,@KMPDGBL@(LN)=@KMPDGBL@(LN)_$$REPEAT^XLFSTR(" ",30-$L(@KMPDGBL@(LN))) | 
|---|
| 62 | ....I CNT=1 S @KMPDGBL@(LN)=$G(@KMPDGBL@(LN))_@ARRAY@(FILE,IEN,FIELD,I) | 
|---|
| 63 | ....E  D | 
|---|
| 64 | .....S @KMPDGBL@(LN)=$G(@KMPDGBL@(LN))_$$REPEAT^XLFSTR(" ",30-$L($G(@KMPDGBL@(LN)))) | 
|---|
| 65 | .....S @KMPDGBL@(LN)=@KMPDGBL@(LN)_"  "_@ARRAY@(FILE,IEN,FIELD,I) | 
|---|
| 66 | ....S LN=LN+1,CNT=CNT+1 | 
|---|
| 67 | ; | 
|---|
| 68 | S KMPDY=$NA(@KMPDGBL) | 
|---|
| 69 | S:'$D(@KMPDGBL) KMPDY="<No Data To Report>" | 
|---|
| 70 | ; | 
|---|
| 71 | Q | 
|---|
| 72 | ; | 
|---|
| 73 | FILESRC(KMPDY,KMPDFN,KMPDFLD,KMPDSRC,KMPDGBL) ;-- file search. | 
|---|
| 74 | ;----------------------------------------------------------------------- | 
|---|
| 75 | ; KMPDFN... File Number. | 
|---|
| 76 | ; KMPDFLD.. Fields to be returned, seperated by commas. | 
|---|
| 77 | ;           Example: ".01,.04,1" would return fields .01, .04 and 1. | 
|---|
| 78 | ; KMPDSRC.. (optional). Search text.  This will search the .01 field for | 
|---|
| 79 | ;           a match.  If KMPDSRC="*" or is null then all entries will be | 
|---|
| 80 | ;           returned. | 
|---|
| 81 | ; KMPDGBL... Global where data is stored. | 
|---|
| 82 | ;----------------------------------------------------------------------- | 
|---|
| 83 | ; | 
|---|
| 84 | K KMPDY | 
|---|
| 85 | ; | 
|---|
| 86 | S KMPDFN=+$G(KMPDFN),KMPDFLD=$G(KMPDFLD) | 
|---|
| 87 | S KMPDSRC=$$UP^XLFSTR($G(KMPDSRC)),KMPDGBL=$G(KMPDGBL) | 
|---|
| 88 | ; | 
|---|
| 89 | I 'KMPDFN S KMPDY="[File Number not defined]" Q | 
|---|
| 90 | ; | 
|---|
| 91 | I KMPDFLD="" S KMPDY="[No fields have been requested]" Q | 
|---|
| 92 | ; | 
|---|
| 93 | I KMPDGBL="" S KMPDY="[Global for storage is not defined]" Q | 
|---|
| 94 | ; | 
|---|
| 95 | N DATA,GLOBAL,I,IEN,LN,NAME,NODE,PIECE | 
|---|
| 96 | ; | 
|---|
| 97 | ; kill global with check for ^tmp or ^utility. | 
|---|
| 98 | D KILL^KMPDU(.DATA,KMPDGBL) | 
|---|
| 99 | ; if error. | 
|---|
| 100 | I $E(DATA)="[" S KMPDY=DATA Q | 
|---|
| 101 | ; | 
|---|
| 102 | S GLOBAL=$G(^DIC(KMPDFN,0,"GL")) | 
|---|
| 103 | I GLOBAL="" S KMPDY="[File #"_KMPDFN_" is not defined]" Q | 
|---|
| 104 | ; make sure global name is closed () for use with subscript indirection. | 
|---|
| 105 | S:$E(GLOBAL,$L(GLOBAL))="," $E(GLOBAL,$L(GLOBAL))=")" | 
|---|
| 106 | ; | 
|---|
| 107 | ; set zero node to field titles. | 
|---|
| 108 | S $P(@KMPDGBL@(0),U)="IEN" | 
|---|
| 109 | F I=1:1 S DATA=$P(KMPDFLD,",",I) Q:DATA=""  D | 
|---|
| 110 | .; try title first. | 
|---|
| 111 | .S TITLE=$G(^DD(KMPDFN,DATA,.1)) | 
|---|
| 112 | .; if no title use name. | 
|---|
| 113 | .S:TITLE="" TITLE=$P($G(^DD(KMPDFN,DATA,0)),U) | 
|---|
| 114 | .S $P(@KMPDGBL@(0),U,(I+1))=TITLE | 
|---|
| 115 | ; | 
|---|
| 116 | S:KMPDSRC="*" KMPDSRC="" | 
|---|
| 117 | ; remove '*' if last character | 
|---|
| 118 | S:$E($RE(KMPDSRC))="*" $E(KMPDSRC,$L(KMPDSRC))="" | 
|---|
| 119 | S LN=1,NAME=KMPDSRC | 
|---|
| 120 | ; if exact match. | 
|---|
| 121 | I NAME]"" S IEN=$O(@GLOBAL@("B",NAME,0)) I IEN D | 
|---|
| 122 | .Q:'$D(@GLOBAL@(IEN,0))  S DATA=^(0) | 
|---|
| 123 | .; ien. | 
|---|
| 124 | .S $P(@KMPDGBL@(LN),U)=IEN | 
|---|
| 125 | .; user defined data. | 
|---|
| 126 | .F I=1:1 S DATA=$P(KMPDFLD,",",I) Q:DATA=""  D | 
|---|
| 127 | ..S $P(@KMPDGBL@(LN),U,(I+1))=$$GET1^DIQ(KMPDFN,IEN,DATA) | 
|---|
| 128 | .S LN=LN+1 | 
|---|
| 129 | ; | 
|---|
| 130 | F  S NAME=$O(@GLOBAL@("B",NAME)) Q:NAME=""!($E(NAME,1,$L(KMPDSRC))'=KMPDSRC)  D | 
|---|
| 131 | .F IEN=0:0 S IEN=$O(@GLOBAL@("B",NAME,IEN)) Q:'IEN  D | 
|---|
| 132 | ..Q:'$D(@GLOBAL@(IEN,0))  S DATA=^(0) | 
|---|
| 133 | ..; ien. | 
|---|
| 134 | ..S $P(@KMPDGBL@(LN),U)=IEN | 
|---|
| 135 | ..; user defined data. | 
|---|
| 136 | ..F I=1:1 S DATA=$P(KMPDFLD,",",I) Q:DATA=""  D | 
|---|
| 137 | ...S $P(@KMPDGBL@(LN),U,(I+1))=$$GET1^DIQ(KMPDFN,IEN,DATA) | 
|---|
| 138 | ..S LN=LN+1 | 
|---|
| 139 | ; | 
|---|
| 140 | S KMPDY=$NA(@KMPDGBL) | 
|---|
| 141 | S:'$O(@KMPDGBL@(0)) @KMPDGBL@(1)="<No Data To Report>" | 
|---|
| 142 | ; | 
|---|
| 143 | Q | 
|---|
| 144 | ; | 
|---|
| 145 | ENV(KMPDRES) ;-- get uci/volume set | 
|---|
| 146 | ;----------------------------------------------------------------------- | 
|---|
| 147 | ; KMPDRES(0)="uci,volumeset" | 
|---|
| 148 | ; KMPDRES(1)="facilityinfo" as returned by $$SITE^VASITE | 
|---|
| 149 | ;----------------------------------------------------------------------- | 
|---|
| 150 | ; | 
|---|
| 151 | K KMPDRES | 
|---|
| 152 | N Y X ^%ZOSF("UCI") | 
|---|
| 153 | S KMPDRES(0)=Y | 
|---|
| 154 | ;S KMPDRES(1)=$$SITE^VASITE | 
|---|
| 155 | ; | 
|---|
| 156 | Q | 
|---|
| 157 | ; | 
|---|
| 158 | VERSION(KMPDY) ;-- version^patch info | 
|---|
| 159 | ; cm tools version^patch | 
|---|
| 160 | S KMPDY(0)=$P($G(^KMPD(8973,1,0)),U,2) | 
|---|
| 161 | ; operating system version | 
|---|
| 162 | S KMPDY(1)=$P($G(^%ZOSF("OS")),U)  ;$ZV | 
|---|
| 163 | ; | 
|---|
| 164 | Q | 
|---|