Changeset 1679 for cprs/trunk/CPRS-Chart/Orders/rOrders.pas
- Timestamp:
- May 7, 2015, 12:34:29 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
cprs/trunk/CPRS-Chart/Orders/rOrders.pas
r829 r1679 40 40 EnteredInError: Integer; //AGP Changes 26.12 PSI-04-053 41 41 DCOriginalOrder: boolean; 42 IsOrderPendDC: boolean; 43 IsDelayOrder: boolean; 42 44 procedure Assign(Source: TOrder); 43 45 procedure Clear; … … 312 314 313 315 { Order Checking } 316 function IsMonograph(): Boolean; 317 procedure DeleteMonograph(); 318 procedure GetMonographList(ListOfMonographs: TStringList); 319 procedure GetMonograph(Monograph: TStringList; x: Integer); 320 procedure GetXtraTxt(OCText: TStringList; x: String; y: String); 314 321 function FillerIDForDialog(IEN: Integer): string; 315 322 function OrderChecksEnabled: Boolean; 316 323 function OrderChecksOnDisplay(const FillerID: string): string; 317 324 procedure OrderChecksOnAccept(ListOfChecks: TStringList; const FillerID, StartDtTm: string; 318 OIList: TStringList; DupORIFN: string );325 OIList: TStringList; DupORIFN: string; Renewal: string); 319 326 procedure OrderChecksOnDelay(ListOfChecks: TStringList; const FillerID, StartDtTm: string; 320 327 OIList: TStringList); … … 578 585 579 586 procedure SetOrderFields(AnOrder: TOrder; const x, y, z: string); 580 { 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 581 { Pieces: ~IFN^Grp^ActTm^StrtTm^StopTm^Sts^Sig^Nrs^Clk^PrvID^PrvNam^ActDA^Flag^DCType^ChrtRev^DEA#^VA#^DigSig^IMO^DCOrigOrder }587 { 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 588 { Pieces: ~IFN^Grp^ActTm^StrtTm^StopTm^Sts^Sig^Nrs^Clk^PrvID^PrvNam^ActDA^Flag^DCType^ChrtRev^DEA#^VA#^DigSig^IMO^DCOrigOrder^ISDCOrder^IsDelayOrder} 582 589 begin 583 590 with AnOrder do … … 614 621 if Piece(x,U,20) = '1' then DCOriginalOrder := True 615 622 else DCOriginalOrder := False; 623 if Piece(X,u,21) = '1' then IsOrderPendDC := True 624 else IsOrderPendDC := False; 625 if Piece(x,u,22) = '1' then IsDelayOrder := True 626 else IsDelayOrder := False; 616 627 end; 617 628 end; … … 1250 1261 OrderMenuItem: TOrderMenuItem; 1251 1262 i: Integer; 1263 OrderTitle: String; 1252 1264 begin 1253 1265 CallV('ORWDXM MENU', [AMenuIEN]); … … 1256 1268 // Results[0] = Name^Cols^PathSwitch^^^LRFZX^LRFSAMP^LRFSPEC^LRFDATE^LRFURG^LRFSCH^PSJNPOC^ 1257 1269 // GMRCNOPD^GMRCNOAT^GMRCREAF^^^^^ 1258 AnOrderMenu.Title := Piece(Results[0], U, 1); 1270 OrderTitle := Piece(Results[0], U, 1); 1271 if (Pos('&', OrderTitle) > 0) and 1272 (Copy(OrderTitle, Pos('&', OrderTitle) + 1, 1) <> '&') then 1273 OrderTitle := Copy(OrderTitle, 1, Pos('&', OrderTitle)) + '&' + Copy(OrderTitle, Pos('&', OrderTitle) + 1, Length(OrderTitle)); 1274 1275 AnOrderMenu.Title := OrderTitle; 1259 1276 AnOrderMenu.NumCols := StrToIntDef(Piece(Results[0], U, 2), 1); 1260 1277 AnOrderMenu.KeyVars := Pieces(Results[0], U, 6, 6 + MAX_KEYVARS); … … 2200 2217 begin 2201 2218 Result := sCallV('ORWDXC FILLID', [IEN]); 2219 end; 2220 function IsMonograph(): Boolean; 2221 var ret: string; 2222 begin 2223 ret := CharAt(sCallV('ORCHECK ISMONO', [nil]), 1); 2224 Result := ret = '1'; 2225 end; 2226 2227 procedure GetMonographList(ListOfMonographs: TStringList); 2228 begin 2229 CallV('ORCHECK GETMONOL', []); 2230 FastAssign(RPCBrokerV.Results, ListOfMonographs); 2231 end; 2232 2233 procedure GetMonograph(Monograph: TStringList; x: Integer); 2234 begin 2235 CallV('ORCHECK GETMONO', [x]); 2236 FastAssign(RPCBrokerV.Results, Monograph); 2237 end; 2238 2239 procedure DeleteMonograph(); 2240 begin 2241 CallV('ORCHECK DELMONO', []); 2242 end; 2243 2244 procedure GetXtraTxt(OCText: TStringList; x: String; y: String); 2245 begin 2246 CallV('ORCHECK GETXTRA', [x,y]); 2247 FastAssign(RPCBrokerV.Results, OCText); 2202 2248 end; 2203 2249 … … 2215 2261 2216 2262 procedure OrderChecksOnAccept(ListOfChecks: TStringList; const FillerID, StartDtTm: string; 2217 OIList: TStringList; DupORIFN: string );2263 OIList: TStringList; DupORIFN: string; Renewal: string); 2218 2264 begin 2219 2265 // don't pass OIList if no items, since broker pauses 5 seconds per order 2220 2266 if OIList.Count > 0 2221 then CallV('ORWDXC ACCEPT', [Patient.DFN, FillerID, StartDtTm, Encounter.Location, OIList, DupORIFN ])2267 then CallV('ORWDXC ACCEPT', [Patient.DFN, FillerID, StartDtTm, Encounter.Location, OIList, DupORIFN, Renewal]) 2222 2268 else CallV('ORWDXC ACCEPT', [Patient.DFN, FillerID, StartDtTm, Encounter.Location]); 2223 2269 FastAssign(RPCBrokerV.Results, ListOfChecks); … … 2241 2287 2242 2288 procedure SaveOrderChecksForSession(const AReason: string; ListOfChecks: TStringList); 2243 begin 2244 CallV('ORWDXC SAVECHK', [Patient.DFN, AReason, ListOfChecks]); 2289 var 2290 i, inc, len, numLoop, remain, y: integer; 2291 OCStr, TmpStr: string; 2292 begin 2293 //CallV('ORWDXC SAVECHK', [Patient.DFN, AReason, ListOfChecks]); 2245 2294 { no result used currently } 2295 RPCBrokerV.ClearParameters := True; 2296 RPCBrokerV.RemoteProcedure := 'ORWDXC SAVECHK'; 2297 RPCBrokerV.Param[0].PType := literal; 2298 RPCBrokerV.Param[0].Value := Patient.DFN; //*DFN* 2299 RPCBrokerV.Param[1].PType := literal; 2300 RPCBrokerV.Param[1].Value := AReason; 2301 RPCBrokerV.Param[2].PType := list; 2302 RPCBrokerV.Param[2].Mult['"ORCHECKS"'] := IntToStr(ListOfChecks.count); 2303 for i := 0 to ListOfChecks.Count - 1 do 2304 begin 2305 OCStr := ListofChecks.Strings[i]; 2306 len := Length(OCStr); 2307 if len > 255 then 2308 begin 2309 numLoop := len div 255; 2310 remain := len mod 255; 2311 inc := 0; 2312 while inc <= numLoop do 2313 begin 2314 tmpStr := Copy(OCStr, 1, 255); 2315 OCStr := Copy(OCStr, 256, Length(OcStr)); 2316 RPCBrokerV.Param[2].Mult['"ORCHECKS",' + InttoStr(i) + ',' + InttoStr(inc)] := tmpStr; 2317 inc := inc +1; 2318 end; 2319 if remain > 0 then RPCBrokerV.Param[2].Mult['"ORCHECKS",' + InttoStr(i) + ',' + inttoStr(inc)] := OCStr; 2320 2321 end 2322 else 2323 RPCBrokerV.Param[2].Mult['"ORCHECKS",' + InttoStr(i)] := OCStr; 2324 end; 2325 CallBroker; 2246 2326 end; 2247 2327
Note:
See TracChangeset
for help on using the changeset viewer.