| 1 | GMVRPCM ; HOIFO/DP - RPC for Vitals Manager ;07/25/05 9:10am
 | 
|---|
| 2 |  ;;5.0;GEN. MED. REC. - VITALS;**1,8,13,3**;Oct 31, 2002
 | 
|---|
| 3 |  ; Integration Agreements:
 | 
|---|
| 4 |  ; #10040 [Supported] File 44 references
 | 
|---|
| 5 |  ; #10076 [Supported] XUSEC Calls
 | 
|---|
| 6 |  ; #2263 [Supported] XPAR Calls
 | 
|---|
| 7 |  ; #2541 [Supported] XUPARAM Calls
 | 
|---|
| 8 |  ; #2692 [Controlled] ORQPTQ1
 | 
|---|
| 9 |  ; #3227 [Private] NURAPI Calls
 | 
|---|
| 10 |  ; #4084 [Private] File 44 AC x-ref
 | 
|---|
| 11 |  ; #4360 [Private] GMV MANAGER RPC
 | 
|---|
| 12 | ADDQUAL ; [P] Add qualifier to vital/category
 | 
|---|
| 13 |  S GMVVIT=+$P(DATA,";",1),GMVCAT=+$P(DATA,";",2),GMVQUAL=+$P(DATA,";",3)
 | 
|---|
| 14 |  I $O(^GMRD(120.52,GMVQUAL,1,"B",GMVVIT,0)) D  Q
 | 
|---|
| 15 |  .S @RESULTS@(0)="1^Qualifier already assigned."
 | 
|---|
| 16 |  S GMVFDA(120.521,"+1,"_GMVQUAL_",",.01)=GMVVIT
 | 
|---|
| 17 |  S GMVFDA(120.521,"+1,"_GMVQUAL_",",.02)=GMVCAT
 | 
|---|
| 18 |  D UPDATE^DIE("","GMVFDA","GMVIEN","GMVERR")
 | 
|---|
| 19 |  I $G(GMVIEN(1)) S @RESULTS@(0)=+GMVIEN(1)_"^Qualifier Assigned"
 | 
|---|
| 20 |  E  S @RESULTS@(0)="-1^Unable to assign qualifier"
 | 
|---|
| 21 |  Q
 | 
|---|
| 22 | DELQUAL ; [P] Delete qualifier from vital/category
 | 
|---|
| 23 |  S GMVVIT=+$P(DATA,";",1),GMVCAT=+$P(DATA,";",2),GMVQUAL=+$P(DATA,";",3)
 | 
|---|
| 24 |  S X=$O(^GMRD(120.52,GMVQUAL,1,"B",GMVVIT,0))
 | 
|---|
| 25 |  S GMVFDA(120.521,X_","_GMVQUAL_",",.01)="@"
 | 
|---|
| 26 |  D FILE^DIE("","GMVFDA","GMVERR")
 | 
|---|
| 27 |  I $D(GMVERR) S @RESULTS@(0)="-1^Unable to remove qualifier."
 | 
|---|
| 28 |  E  S @RESULTS@(0)="1^Qualifier removed."
 | 
|---|
| 29 |  Q
 | 
|---|
| 30 | DELTEMP ; [P] Delete Template
 | 
|---|
| 31 |  S GMVENT=$P(DATA,U,1),GMVNAME=$P(DATA,U,2)
 | 
|---|
| 32 |  I $$GET^XPAR(GMVENT,"GMV TEMPLATE DEFAULT")=GMVNAME D
 | 
|---|
| 33 |  .D DEL^XPAR(GMVENT,"GMV TEMPLATE DEFAULT",1)
 | 
|---|
| 34 |  D DEL^XPAR(GMVENT,"GMV TEMPLATE",GMVNAME,.GMVERR)
 | 
|---|
| 35 |  I '$G(GMVERR) S @RESULTS@(0)="1^Template Removed."
 | 
|---|
| 36 |  E  S @RESULTS@(0)="-1^"_GMVERR
 | 
|---|
| 37 |  Q
 | 
|---|
| 38 | GETCATS ; [P] Return Listing of categories
 | 
|---|
| 39 |  N GMVQI
 | 
|---|
| 40 |  F GMVCAT=0:0 S GMVCAT=$O(^GMRD(120.52,"AA",DATA,GMVCAT)) Q:'GMVCAT  D
 | 
|---|
| 41 |  .Q:$$ACTIVE^GMVUID(120.53,"",GMVCAT_",","")
 | 
|---|
| 42 |  .S GMVQUAL="",X="" F  S X=$O(^GMRD(120.52,"AA",DATA,GMVCAT,X)) Q:X=""  D
 | 
|---|
| 43 |  ..S GMVQI=$O(^GMRD(120.52,"AA",DATA,GMVCAT,X,0))
 | 
|---|
| 44 |  ..Q:$$ACTIVE^GMVUID(120.52,"",GMVQI_",","")
 | 
|---|
| 45 |  ..S GMVQUAL=GMVQUAL_$S(GMVQUAL]"":", ",1:"")_X
 | 
|---|
| 46 |  .S Y=$O(@RESULTS@(""),-1)+1
 | 
|---|
| 47 |  .S @RESULTS@(Y)=GMVCAT_U_$P(^GMRD(120.53,GMVCAT,0),U)_U_GMVQUAL
 | 
|---|
| 48 |  S @RESULTS@(0)=+$O(@RESULTS@(""),-1)_U_$P(^GMRD(120.51,DATA,0),U)
 | 
|---|
| 49 |  Q
 | 
|---|
| 50 | GETDATA ; [P] Generic fileman data call
 | 
|---|
| 51 |  ; Variable DATA = File#^IENS^Field#
 | 
|---|
| 52 |  S @RESULTS@(0)=$$GET1^DIQ($P(DATA,U,1),$P(DATA,U,2),$P(DATA,U,3))
 | 
|---|
| 53 |  Q
 | 
|---|
| 54 | GETDEF ; [P] Get Default Template
 | 
|---|
| 55 |  I $G(DATA)]"" D  Q
 | 
|---|
| 56 |  .S X=$$GET^XPAR($P(DATA,U),"GMV TEMPLATE DEFAULT")
 | 
|---|
| 57 |  .I X="" S @RESULTS@(0)="-1^No Default Template"
 | 
|---|
| 58 |  .E  S @RESULTS@(0)=X
 | 
|---|
| 59 |  D ENVAL^XPAR(.GMV,"GMV TEMPLATE DEFAULT")
 | 
|---|
| 60 |  S X="" F  S X=$O(GMV(X)) Q:X=""  D
 | 
|---|
| 61 |  .S Y=$O(@RESULTS@(""),-1)+1
 | 
|---|
| 62 |  .S @RESULTS@(Y)=X_U_GMV(X,1)
 | 
|---|
| 63 |  S @RESULTS@(0)=+$O(@RESULTS@(""),-1)
 | 
|---|
| 64 |  Q
 | 
|---|
| 65 | GETHILO ; [P] Returns an abnormal value
 | 
|---|
| 66 |  S @RESULTS@(0)=+$$GET1^DIQ(120.57,"1,",DATA)
 | 
|---|
| 67 |  Q
 | 
|---|
| 68 | GETLIST ; [P] Return listing of file
 | 
|---|
| 69 |  K GMVRET,^TMP("DILIST",$J)
 | 
|---|
| 70 |  S GMVSCRN=""
 | 
|---|
| 71 |  I +DATA=44 S DATA2=$P(DATA,U,2),DATA=+DATA
 | 
|---|
| 72 |  I DATA=120.51 D  ; Set screen for vitals list
 | 
|---|
| 73 |  .S GMVSCRN="I $$VITALIEN^GMVUTL8()[("",""_+Y_"","")"
 | 
|---|
| 74 |  I DATA=42 D  ; Screen for ward location
 | 
|---|
| 75 |  .S GMVSCRN="I '$$INACT42^GMVUT2(+Y)"
 | 
|---|
| 76 |  I DATA=44 D  Q  ; Clinics
 | 
|---|
| 77 |  .N CNT S X=DATA2,CNT=0
 | 
|---|
| 78 |  .F  S X=$O(^SC("AC","C",X)) Q:'X!(CNT>100)  D
 | 
|---|
| 79 |  ..Q:+$G(^SC(X,"OOS"))
 | 
|---|
| 80 |  ..S Y=$G(^SC(X,"I"))
 | 
|---|
| 81 |  ..I Y Q:DT>+Y&($P(Y,U,2)=""!(DT<$P(Y,U,2)))
 | 
|---|
| 82 |  ..S @RESULTS@($O(@RESULTS@(""),-1)+1)=DATA_";"_X_U_$P(^SC(X,0),U),CNT=CNT+1
 | 
|---|
| 83 |  .S @RESULTS@(0)=+$O(@RESULTS@(""),-1)
 | 
|---|
| 84 |  I DATA=100.21 D  Q  ; CPRS Teams
 | 
|---|
| 85 |  .D TEAMS^ORQPTQ1(.GMVRET)
 | 
|---|
| 86 |  .F X=0:0 S X=$O(GMVRET(X)) Q:'X  S @RESULTS@(X)=DATA_";"_GMVRET(X)
 | 
|---|
| 87 |  .S @RESULTS@(0)=+$O(@RESULTS@(""),-1)
 | 
|---|
| 88 |  I DATA=211.4 D  Q  ; NURS Locations
 | 
|---|
| 89 |  .D ACTLOCS^NURAPI(.GMVRET)
 | 
|---|
| 90 |  .F X=0:0 S X=$O(GMVRET(X)) Q:'X  S @RESULTS@(X)=DATA_";"_GMVRET(X)
 | 
|---|
| 91 |  .S @RESULTS@(0)=+$O(@RESULTS@(""),-1)
 | 
|---|
| 92 |  I DATA=120.52 S GMVSCRN="I '$$ACTIVE^GMVUID(120.52,.01,+Y_"","","""")"
 | 
|---|
| 93 |  D LIST^DIC(DATA,"","@;.01","P","","","","",GMVSCRN)
 | 
|---|
| 94 |  F X=0:0 S X=$O(^TMP("DILIST",$J,X)) Q:'X  D
 | 
|---|
| 95 |  .S @RESULTS@(X)=DATA_";"_^TMP("DILIST",$J,X,0)
 | 
|---|
| 96 |  S @RESULTS@(0)=+$O(@RESULTS@(""),-1)_U_$$GET1^DID(DATA,"","","NAME")
 | 
|---|
| 97 |  K ^TMP("DILIST",$J)
 | 
|---|
| 98 |  Q
 | 
|---|
| 99 | GETQUAL ; [P] Return qualifiers list
 | 
|---|
| 100 |  ; DATA=VitalIEN;CatIEN
 | 
|---|
| 101 |  ; Uses X-ref of ^GMRD(120.52,"AA",VitalIEN,CategoryIEN,QName,QIEN)
 | 
|---|
| 102 |  S GMVIT=+$P(DATA,";",1),GMVCAT=+$P(DATA,";",2)
 | 
|---|
| 103 |  I '$D(^GMRD(120.53,GMVCAT,0)) S @RESULTS@(0)="-1^No such category" Q
 | 
|---|
| 104 |  I $$ACTIVE^GMVUID(120.53,"",GMVCAT_",","") S @RESULTS@(0)="-1^Inactive category" Q
 | 
|---|
| 105 |  I '$D(^GMRD(120.51,GMVIT,0)) S @RESULTS@(0)="-1^No such vital" Q
 | 
|---|
| 106 |  I $$ACTIVE^GMVUID(120.51,"",GMVIT_",","") S @RESULTS@(0)="-1^Inactive vital type" Q
 | 
|---|
| 107 |  S GMVNAM=""
 | 
|---|
| 108 |  F  S GMVNAM=$O(^GMRD(120.52,"AA",GMVIT,GMVCAT,GMVNAM)) Q:GMVNAM=""  D
 | 
|---|
| 109 |  .S GMVIEN=$O(^GMRD(120.52,"AA",GMVIT,GMVCAT,GMVNAM,0))  ; Assume only one of this name
 | 
|---|
| 110 |  .Q:$$ACTIVE^GMVUID(120.52,"",GMVIEN_",","")
 | 
|---|
| 111 |  .S Y=$O(@RESULTS@(""),-1)+1
 | 
|---|
| 112 |  .S @RESULTS@(Y)=GMVIEN_U_GMVNAM
 | 
|---|
| 113 |  S @RESULTS@(0)=+$O(@RESULTS@(""),-1)_U_$P(^GMRD(120.53,GMVCAT,0),U)
 | 
|---|
| 114 |  Q
 | 
|---|
| 115 | GETTEMP ; [P] Get Template List
 | 
|---|
| 116 |  I $G(DATA)]"" D
 | 
|---|
| 117 |  .S GMVENT=$$ENTITY($P(DATA,U,1)),GMVNAME=$P(DATA,U,2)
 | 
|---|
| 118 |  .I GMVNAME="" D
 | 
|---|
| 119 |  ..D GETLST^XPAR(.GMVTMP,GMVENT,"GMV TEMPLATE")
 | 
|---|
| 120 |  ..F X=0:0 S X=$O(GMVTMP(X)) Q:'X  D
 | 
|---|
| 121 |  ...S GMV(GMVENT,$P(GMVTMP(X),U,1))=$P(GMVTMP(X),U,2,10)
 | 
|---|
| 122 |  .I GMVNAME]"" S GMV(GMVENT,GMVNAME)=$$GET^XPAR(GMVENT,"GMV TEMPLATE",GMVNAME)
 | 
|---|
| 123 |  I $G(DATA)="" D ENVAL^XPAR(.GMV,"GMV TEMPLATE")
 | 
|---|
| 124 |  S GMVENT="",GMVNAME=""
 | 
|---|
| 125 |  F  S GMVENT=$O(GMV(GMVENT)) Q:GMVENT=""  D
 | 
|---|
| 126 |  .S GMVROOT=$P(GMVENT,";",2),GMVTYPE=$$TYPE(GMVROOT),GMVIEN=+GMVENT
 | 
|---|
| 127 |  .Q:GMVTYPE=0  ;unknown template type
 | 
|---|
| 128 |  .Q:GMVROOT="VA(200,"&('$$GET^XPAR("SYS","GMV ALLOW USER TEMPLATES"))
 | 
|---|
| 129 |  .I GMVROOT="VA(200,"&(GMVIEN'=DUZ) Q:'$D(^XUSEC("GMV MANAGER",DUZ))
 | 
|---|
| 130 |  .F  S GMVNAME=$O(GMV(GMVENT,GMVNAME)) Q:GMVNAME=""  D
 | 
|---|
| 131 |  ..S GMVOWNER=$P($G(@(U_GMVROOT_(+GMVIEN)_",0)"),"Unk"),U)
 | 
|---|
| 132 |  ..S Y=$O(@RESULTS@(""),-1)+1
 | 
|---|
| 133 |  ..S @RESULTS@(Y)=GMVTYPE_U_GMVENT_U_GMVOWNER_U_GMVNAME_U_GMV(GMVENT,GMVNAME)
 | 
|---|
| 134 |  S @RESULTS@(0)=+$O(@RESULTS@(""),-1)
 | 
|---|
| 135 |  Q
 | 
|---|
| 136 | LOOKUP ; [P] Does a lookup on a file
 | 
|---|
| 137 |  N GMVSCRN
 | 
|---|
| 138 |  S GMVSCRN=$S(+DATA=44:"I "_"""^C^W^"""_"[$P(^(0),U,3)",1:"")
 | 
|---|
| 139 |  I $P(DATA,"^",3)="" S GMVFLD="@;.01"
 | 
|---|
| 140 |  E  S GMVFLD="@;"_$P(DATA,"^",3)
 | 
|---|
| 141 |  S GMVFLD=$P(GMVFLD,";",1,5) ; Limit lookup to 4 display fields
 | 
|---|
| 142 |  D FIND^DIC(+DATA,"",GMVFLD,"P",$P(DATA,"^",2),61,,GMVSCRN)
 | 
|---|
| 143 |  I ^TMP("DILIST",$J,0)<1 D  Q
 | 
|---|
| 144 |  .S @RESULTS@(0)="-1^No entries found matching '"_$P(DATA,U,2)_"'."
 | 
|---|
| 145 |  I ^TMP("DILIST",$J,0)>60 D  Q
 | 
|---|
| 146 |  .S @RESULTS@(0)="-1^Too many matches found, please be more specific."
 | 
|---|
| 147 |  F X=0:0 S X=$O(^TMP("DILIST",$J,X)) Q:'X  D
 | 
|---|
| 148 |  .S @RESULTS@(X)=+DATA_";"_^TMP("DILIST",$J,X,0)
 | 
|---|
| 149 |  S @RESULTS@(0)=+$O(@RESULTS@(""),-1)
 | 
|---|
| 150 |  Q
 | 
|---|
| 151 | NEWQUAL ; [P] Create New Qualifier
 | 
|---|
| 152 |  S @RESULTS@(0)="-1^Use the New Term Rapid Turnaround (NTRT) process to add qualifiers"
 | 
|---|
| 153 |  Q
 | 
|---|
| 154 | NEWTEMP ; [P] New Template
 | 
|---|
| 155 |  S GMVENT=$P(DATA,"^",1),GMVNAME=$P(DATA,"^",2),GMVDESC=$P(DATA,"^",3)
 | 
|---|
| 156 |  S GMVENT=$$ENTITY(GMVENT)
 | 
|---|
| 157 |  S GMVTYPE=$$TYPE($P(GMVENT,";",2))
 | 
|---|
| 158 |  S GMVOWN=$P($G(@(U_$P(GMVENT,";",2)_+GMVENT_",0)"),"Unk"),U)
 | 
|---|
| 159 |  S:GMVDESC="" GMVDESC="No Description"
 | 
|---|
| 160 |  D ADD^XPAR(GMVENT,"GMV TEMPLATE",GMVNAME,GMVDESC,.GMVERR)
 | 
|---|
| 161 |  I 'GMVERR S @RESULTS@(0)=GMVTYPE_U_GMVENT_U_GMVOWN_U_GMVNAME
 | 
|---|
| 162 |  E  S @RESULTS@(0)="-1^"_GMVERR
 | 
|---|
| 163 |  Q
 | 
|---|
| 164 | RENTEMP ; [P] Rename a Template
 | 
|---|
| 165 |  S GMVENT=$P(DATA,U,1),GMVOLD=$P(DATA,U,2),GMVNEW=$P(DATA,U,3)
 | 
|---|
| 166 |  D REP^XPAR(GMVENT,"GMV TEMPLATE",GMVOLD,GMVNEW,.GMVERR)
 | 
|---|
| 167 |  I 'GMVERR S @RESULTS@(0)="1^Renamed"
 | 
|---|
| 168 |  E  S @RESULTS@(0)="-1^"_GMVERR Q
 | 
|---|
| 169 |  ; Reset default template if this was a default template
 | 
|---|
| 170 |  D:$$GET^XPAR(GMVENT,"GMV TEMPLATE DEFAULT")=GMVOLD
 | 
|---|
| 171 |  .D EN^XPAR(GMVENT,"GMV TEMPLATE DEFAULT",1,GMVNEW)
 | 
|---|
| 172 |  Q
 | 
|---|
| 173 | RPC(RESULTS,OPTION,DATA) ; [Procedure] Main RPC call tag
 | 
|---|
| 174 |  ; RPC: [GMV MANAGER]
 | 
|---|
| 175 |  ;
 | 
|---|
| 176 |  ; Input parameters
 | 
|---|
| 177 |  ;  1. RESULTS [Reference/Required] RPC Return array
 | 
|---|
| 178 |  ;  2. OPTION [Literal/Required] RPC Option to execute
 | 
|---|
| 179 |  ;  3. DATA [Literal/Required] Other data as required for call
 | 
|---|
| 180 |  ;
 | 
|---|
| 181 |  N GMV,GMVCAT,GMVDESC,GMVENT,GMVERR,GMVFDA,GMVFLD,GMVIEN,GMVIT,GMVNAM,GMVNAME,GMVNEW,GMVOLD,GMVOWN,GMVOWNER,GMVQUAL,GMVROOT,GMVTYPE,GMVVAL,GMVVIT,GMVSCRN
 | 
|---|
| 182 |  S RESULTS=$NA(^TMP("GMVMGR",$J)) K @RESULTS
 | 
|---|
| 183 |  D:$T(@OPTION)]"" @OPTION
 | 
|---|
| 184 |  S:'$D(@RESULTS) @RESULTS@(0)="-1^No results returned"
 | 
|---|
| 185 |  D CLEAN^DILF
 | 
|---|
| 186 |  Q
 | 
|---|
| 187 | SETDATA ; [P] Save New Qualifier Name/Abbv
 | 
|---|
| 188 |  S @RESULTS@(0)="-1^Use the New Term Rapid Turnaround (NTRT) process to add qualifiers"
 | 
|---|
| 189 |  Q
 | 
|---|
| 190 | SETDEF ; [P] Set Default Template
 | 
|---|
| 191 |  D EN^XPAR($P(DATA,U),"GMV TEMPLATE DEFAULT",1,$P(DATA,U,2),.GMVERR)
 | 
|---|
| 192 |  I '$G(GMVERR) S @RESULTS@(0)="1^Set As Default."
 | 
|---|
| 193 |  E  S @RESULTS@(0)="-1^"_GMVERR
 | 
|---|
| 194 |  Q
 | 
|---|
| 195 | SETHILO ; [P] Set abnormal value
 | 
|---|
| 196 |  L +(^GMRD(120.57,0)):5
 | 
|---|
| 197 |  E  S @RESULTS@(0)="-1^Site File In Use." Q
 | 
|---|
| 198 |  S GMVFLD=$P(DATA,"^",1),GMVVAL=$P(DATA,"^",2)
 | 
|---|
| 199 |  S GMVFDA(120.57,"1,",GMVFLD)=GMVVAL
 | 
|---|
| 200 |  D FILE^DIE("","GMVFDA","GMVERR")
 | 
|---|
| 201 |  L -(^GMRD(120.57,0))
 | 
|---|
| 202 |  S @RESULTS@(0)="1^Update Complete."
 | 
|---|
| 203 |  Q
 | 
|---|
| 204 | SETTEMP ; [P] Set Template data
 | 
|---|
| 205 |  D EN^XPAR($P(DATA,U),"GMV TEMPLATE",$P(DATA,U,2),$P(DATA,U,3),.GMVERR)
 | 
|---|
| 206 |  I '$G(GMVERR) S @RESULTS@(0)="1^Template Saved."
 | 
|---|
| 207 |  E  S @RESULTS@(0)="-1^"_GMVERR
 | 
|---|
| 208 |  Q
 | 
|---|
| 209 | VALID ; [P] Verify data validity against fileman
 | 
|---|
| 210 |  D VAL^DIE($P(DATA,U,1),$P(DATA,U,2),$P(DATA,U,3),"H",$P(DATA,U,4),.GMVRET)
 | 
|---|
| 211 |  I GMVRET'="^" S @RESULTS@(0)="1^Valid Data"
 | 
|---|
| 212 |  E  S @RESULTS@(0)="-1^"_^TMP("DIERR",$J,1,"TEXT",1)
 | 
|---|
| 213 |  Q
 | 
|---|
| 214 | ENTITY(X) ; [Function] Convert USR, SYS, and DIV entities
 | 
|---|
| 215 |  ; Input parameters
 | 
|---|
| 216 |  ;  1. X [Literal/Required] XPAR generic entity to transform to variable pointer format
 | 
|---|
| 217 |  ;
 | 
|---|
| 218 |  Q:X="USR" DUZ_";VA(200,"
 | 
|---|
| 219 |  Q:X="SYS" $$FIND1^DIC(4.2,"","QX",$$KSP^XUPARAM("WHERE"))_";DIC(4.2,"
 | 
|---|
| 220 |  Q:X="DIV" DUZ(2)_";DIC(4,"
 | 
|---|
| 221 |  Q X
 | 
|---|
| 222 |  ;
 | 
|---|
| 223 | TYPE(X) ; [F] Returns the type of template
 | 
|---|
| 224 |  ; Input parameters
 | 
|---|
| 225 |  ;  1. X [Literal/Required] Variable pointer to evaluate
 | 
|---|
| 226 |  ;
 | 
|---|
| 227 |  Q:X="DIC(4.2," 1 ;Domain
 | 
|---|
| 228 |  Q:X="DIC(4," 2 ;  Institution
 | 
|---|
| 229 |  Q:X="SC(" 3 ;     Hospital Location
 | 
|---|
| 230 |  Q:X="VA(200," 4 ; New Person
 | 
|---|
| 231 |  Q 0 ;             Unknown
 | 
|---|
| 232 |  ;
 | 
|---|
| 233 | VT ;VitalTypeIENS
 | 
|---|
| 234 |  N X,Y,Z
 | 
|---|
| 235 |  S Y=0,@RESULTS@(0)="-1"
 | 
|---|
| 236 |  F X="T","P","R","BP","HT","WT","PN","PO2","CVP","CG" D
 | 
|---|
| 237 |  .S Z=$O(^GMRD(120.51,"C",X,0))
 | 
|---|
| 238 |  .Q:'Z
 | 
|---|
| 239 |  .S Y=Y+1,@RESULTS@(Y)=Z
 | 
|---|
| 240 |  Q
 | 
|---|