Ignore:
Timestamp:
May 7, 2015, 12:34:29 PM (9 years ago)
Author:
healthsevak
Message:

Updating the working copy to CPRS version 28

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cprs/trunk/CPRS-Chart/Orders/rOrders.pas

    r829 r1679  
    4040    EnteredInError:     Integer; //AGP Changes 26.12 PSI-04-053
    4141    DCOriginalOrder: boolean;
     42    IsOrderPendDC: boolean;
     43    IsDelayOrder: boolean;
    4244    procedure Assign(Source: TOrder);
    4345    procedure Clear;
     
    312314
    313315{ Order Checking }
     316function IsMonograph(): Boolean;
     317procedure DeleteMonograph();
     318procedure GetMonographList(ListOfMonographs: TStringList);
     319procedure GetMonograph(Monograph: TStringList; x: Integer);
     320procedure GetXtraTxt(OCText: TStringList; x: String; y: String);
    314321function FillerIDForDialog(IEN: Integer): string;
    315322function OrderChecksEnabled: Boolean;
    316323function OrderChecksOnDisplay(const FillerID: string): string;
    317324procedure OrderChecksOnAccept(ListOfChecks: TStringList; const FillerID, StartDtTm: string;
    318   OIList: TStringList; DupORIFN: string);
     325  OIList: TStringList; DupORIFN: string; Renewal: string);
    319326procedure OrderChecksOnDelay(ListOfChecks: TStringList; const FillerID, StartDtTm: string;
    320327  OIList: TStringList);
     
    578585
    579586procedure 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}
    582589begin
    583590  with AnOrder do
     
    614621    if Piece(x,U,20) = '1' then DCOriginalOrder := True
    615622    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;
    616627  end;
    617628end;
     
    12501261  OrderMenuItem: TOrderMenuItem;
    12511262  i: Integer;
     1263  OrderTitle: String;
    12521264begin
    12531265  CallV('ORWDXM MENU', [AMenuIEN]);
     
    12561268    // Results[0] = Name^Cols^PathSwitch^^^LRFZX^LRFSAMP^LRFSPEC^LRFDATE^LRFURG^LRFSCH^PSJNPOC^
    12571269    //              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;
    12591276    AnOrderMenu.NumCols := StrToIntDef(Piece(Results[0], U, 2), 1);
    12601277    AnOrderMenu.KeyVars := Pieces(Results[0], U, 6, 6 + MAX_KEYVARS);
     
    22002217begin
    22012218  Result := sCallV('ORWDXC FILLID', [IEN]);
     2219end; 
     2220function IsMonograph(): Boolean;
     2221var ret: string;
     2222begin
     2223  ret := CharAt(sCallV('ORCHECK ISMONO', [nil]), 1);
     2224  Result := ret = '1';
     2225end;
     2226
     2227procedure GetMonographList(ListOfMonographs: TStringList);
     2228begin
     2229  CallV('ORCHECK GETMONOL', []);
     2230  FastAssign(RPCBrokerV.Results, ListOfMonographs);
     2231end;
     2232
     2233procedure GetMonograph(Monograph: TStringList; x: Integer);
     2234begin
     2235  CallV('ORCHECK GETMONO', [x]);
     2236  FastAssign(RPCBrokerV.Results, Monograph);
     2237end;
     2238
     2239procedure DeleteMonograph();
     2240begin
     2241  CallV('ORCHECK DELMONO', []);
     2242end; 
     2243
     2244procedure GetXtraTxt(OCText: TStringList; x: String; y: String);
     2245begin
     2246  CallV('ORCHECK GETXTRA', [x,y]);
     2247  FastAssign(RPCBrokerV.Results, OCText);
    22022248end;
    22032249
     
    22152261
    22162262procedure OrderChecksOnAccept(ListOfChecks: TStringList; const FillerID, StartDtTm: string;
    2217   OIList: TStringList; DupORIFN: string);
     2263  OIList: TStringList; DupORIFN: string; Renewal: string);
    22182264begin
    22192265  // don't pass OIList if no items, since broker pauses 5 seconds per order
    22202266  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])
    22222268    else CallV('ORWDXC ACCEPT', [Patient.DFN, FillerID, StartDtTm, Encounter.Location]);
    22232269  FastAssign(RPCBrokerV.Results, ListOfChecks);
     
    22412287
    22422288procedure SaveOrderChecksForSession(const AReason: string; ListOfChecks: TStringList);
    2243 begin
    2244   CallV('ORWDXC SAVECHK', [Patient.DFN, AReason, ListOfChecks]);
     2289var
     2290 i, inc, len, numLoop, remain, y: integer;
     2291 OCStr, TmpStr: string;
     2292begin
     2293  //CallV('ORWDXC SAVECHK', [Patient.DFN, AReason, ListOfChecks]);
    22452294  { 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;
    22462326end;
    22472327
Note: See TracChangeset for help on using the changeset viewer.