Ignore:
Timestamp:
Jul 7, 2010, 4:51:54 PM (14 years ago)
Author:
Kevin Toppenberg
Message:

Upgrading to version 27

File:
1 edited

Legend:

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

    r456 r830  
    55uses
    66  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    7   Dialogs, StdCtrls, fAutoSz, ORCtrls, ExtCtrls, ComCtrls, rMisc;
     7  Dialogs, StdCtrls, fAutoSz, ORCtrls, ExtCtrls, ComCtrls, rMisc, fBase508Form,
     8  VA508AccessibilityManager;
    89
    910type
     
    2223  end;
    2324
    24   TfrmFlags = class(TForm)
     25  TfrmFlags = class(TfrmBase508Form)
    2526    Splitter1: TSplitter;
    2627    pnlTop: TORAutoPanel;
    2728    lblFlags: TLabel;
    28     lstFlags: TORListBox;
     29    lstFlagsCat2: TORListBox;
    2930    memFlags: TRichEdit;
    3031    pnlNotes: TPanel;
     
    3435    pnlBottom: TORAutoPanel;
    3536    btnClose: TButton;
    36     procedure lstFlagsClick(Sender: TObject);
     37    lstFlagsCat1: TORListBox;
     38    lblCat1: TLabel;
     39    TimerTextFlash: TTimer;
     40    procedure lstFlagsCat1Click(Sender: TObject);
    3741    procedure FormKeyDown(Sender: TObject; var Key: Word;
    3842      Shift: TShiftState);
     
    4448    procedure lvPRFKeyDown(Sender: TObject; var Key: Word;
    4549      Shift: TShiftState);
     50    procedure TimerTextFlashTimer(Sender: TObject);
     51    procedure lstFlagsCat2Click(Sender: TObject);
    4652  private
    4753    FFlagID: integer;
    4854    FPRFNotes : TPRFNotes;
    4955    FNoteTitle: String;
    50     procedure GetNotes();
     56    procedure GetNotes(SelectedList : TORListBox);
     57    procedure MakeCat1FlagsStandOut;
     58    procedure LoadSelectedFlagData(SelectedList : TORListBox);
     59    procedure ActivateSpecificFlag;
     60    procedure PutFlagsOnLists(flags, Cat1List,  Cat2List: TStrings);
     61    function GetListToActivate : TORListBox;
    5162  public
    5263    { Public declarations }
     
    8091    if HasFlag then
    8192    begin
    82       //SetFormPosition(frmFlags);
    83       frmFlags.FFlagID := FlagId;
    84       frmFlags.lstFlags.Items.Assign(FlagList);
     93      with frmFlags do begin
     94        FFlagID := FlagId;
     95        PutFlagsOnLists(FlagList, lstFlagsCat1.Items, lstFlagsCat2.Items);
     96      end;
    8597      frmFlags.memFlags.SelStart := 0;
    8698      ResizeFormToFont(TForm(frmFlags));
     
    92104end;
    93105
    94 procedure TfrmFlags.lstFlagsClick(Sender: TObject);
    95 var
    96   FlagArray: TStringList;
    97 begin
    98   if lstFlags.ItemIndex >= 0 then
     106procedure TfrmFlags.lstFlagsCat1Click(Sender: TObject);
     107begin
     108  if lstFlagsCat1.ItemIndex >= 0 then
    99109  begin
    100     FlagArray := TStringList.Create;
    101     GetActiveFlg(FlagArray, Patient.DFN, lstFlags.ItemID);
    102     if FlagArray.Count > 0 then
    103       memFlags.Lines.Assign(FlagArray);
    104     memFlags.SelStart := 0;
    105     GetNotes;
     110    with lstFlagsCat2 do
     111      Selected[ItemIndex] := False;
     112    LoadSelectedFlagData(lstFlagsCat1);
    106113  end;
    107114end;
     
    116123
    117124procedure TfrmFlags.FormShow(Sender: TObject);
    118 var
    119   idx: integer;
    120125begin
    121126  inherited;
    122127  SetFormPosition(Self);
    123   idx := 0;
    124   if FFlagID > 0 then idx := lstFlags.SelectByIEN(FFlagId);
    125   lstFlags.ItemIndex := idx;
    126   lstFlagsClick(Self);
    127   ActiveControl := memFlags;
    128   GetNotes;
     128  if lstFlagsCat1.Count > 0 then
     129    MakeCat1FlagsStandOut;
     130
     131  ActivateSpecificFlag;
    129132end;
    130133
     
    141144end;
    142145
    143 procedure TfrmFlags.GetNotes;
     146procedure TfrmFlags.GetNotes(SelectedList : TORListBox);
    144147var
    145148  NoteTitleIEN, FlagID : Int64;
     
    147150    if FPRFNotes = nil then
    148151      FPRFNotes := TPRFNotes.Create;
    149     FlagID := lstFlags.ItemID;
     152    FlagID := SelectedList.ItemID;
    150153    CallV('TIU GET PRF TITLE', [Patient.DFN,FlagID]);
    151154    FNoteTitle := Piece(RPCBrokerV.Results[0],U,NOTE_TITLE);
     
    185188begin
    186189  CallV('TIU GET LINKED PRF NOTES', [DFN,TitleIEN,REVERSE_CHRONO]);
    187   FPRFNoteList.Assign(RPCBrokerV.Results);
     190  FastAssign(RPCBrokerV.Results, FPRFNoteList);
    188191end;
    189192
     
    226229end;
    227230
     231
     232procedure TfrmFlags.MakeCat1FlagsStandOut;
     233Const
     234  FONT_INC = 4;
     235  clBrightOrange = TColor($3ABEF3);  //Blue 58 Green 190 Red 243
     236begin
     237  lblCat1.Font.Size := lblCat1.Font.Size + FONT_INC;
     238  lstFlagsCat1.Font.Size := lstFlagsCat1.Font.Size + FONT_INC;
     239  lblCat1.Color := Get508CompliantColor(clBrightOrange);
     240  lstFlagsCat1.Color := Get508CompliantColor(clBrightOrange);
     241  lblCat1.Font.Color := Get508CompliantColor(clWhite);
     242  lstFlagsCat1.Font.Color := Get508CompliantColor(clWhite);
     243  TimerTextFlash.Enabled := true;
     244end;
     245
     246procedure TfrmFlags.TimerTextFlashTimer(Sender: TObject);
     247begin
     248  if lblCat1.Font.Color = Get508CompliantColor(clWhite) then
     249    lblCat1.Font.Color := Get508CompliantColor(clBlack)
     250  else
     251    lblCat1.Font.Color := Get508CompliantColor(clWhite);
     252end;
     253
     254procedure TfrmFlags.LoadSelectedFlagData(SelectedList: TORListBox);
     255var
     256  FlagArray: TStringList;
     257begin
     258    FlagArray := TStringList.Create;
     259    GetActiveFlg(FlagArray, Patient.DFN, SelectedList.ItemID);
     260    if FlagArray.Count > 0 then
     261      QuickCopy(FlagArray, memFlags);
     262    memFlags.SelStart := 0;
     263    GetNotes(SelectedList);
     264end;
     265
     266procedure TfrmFlags.lstFlagsCat2Click(Sender: TObject);
     267begin
     268  if lstFlagsCat2.ItemIndex >= 0 then
     269  begin
     270    with lstFlagsCat1 do
     271      Selected[ItemIndex] := False;
     272    LoadSelectedFlagData(lstFlagsCat2);
     273  end;
     274end;
     275
     276procedure TfrmFlags.ActivateSpecificFlag;
     277var
     278  idx: integer;
     279  SelectedList : TORListBox;
     280begin
     281  idx := 0;
     282  SelectedList := GetListToActivate;
     283  if FFlagID > 0 then
     284    idx := SelectedList.SelectByIEN(FFlagId);
     285  SelectedList.ItemIndex := idx;
     286  SelectedList.OnClick(Self);
     287  ActiveControl := memFlags;
     288  GetNotes(SelectedList);
     289end;
     290
     291function TfrmFlags.GetListToActivate: TORListBox;
     292begin
     293  Result := nil;
     294  if FFlagID > 0 then begin
     295    if lstFlagsCat1.SelectByIEN(FFlagId) > -1 then
     296      Result := lstFlagsCat1
     297    else if lstFlagsCat2.SelectByIEN(FFlagId) > -1 then
     298      Result := lstFlagsCat2
     299  end;
     300  if Result = nil then
     301    if lstFlagsCat1.Items.Count > 0 then
     302      Result := lstFlagsCat1
     303    else
     304      Result := lstFlagsCat2;
     305
     306end;
     307
     308procedure TfrmFlags.PutFlagsOnLists(flags, Cat1List, Cat2List: TStrings);
     309Const
     310  FLAG_TYPE_POS = 3;
     311  TRUE_STRING = '1';
     312var
     313  i : integer;
     314begin
     315  for i := 0 to flags.Count-1 do begin
     316    if Piece(flags[i],U,FLAG_TYPE_POS) = TRUE_STRING then
     317      Cat1List.Add(flags[i])
     318    else
     319      Cat2List.Add(flags[i]);
     320  end;
     321end;
     322
    228323end.
Note: See TracChangeset for help on using the changeset viewer.