Index: cprs/trunk/CPRS-Chart/Options/fOptions.dfm
===================================================================
--- cprs/trunk/CPRS-Chart/Options/fOptions.dfm	(revision 829)
+++ cprs/trunk/CPRS-Chart/Options/fOptions.dfm	(revision 1679)
@@ -2,5 +2,4 @@
   Left = 315
   Top = 110
-  Width = 435
   Height = 397
   HelpContext = 9999
@@ -11,9 +10,6 @@
   Font.Name = 'Tahoma'
   HelpFile = 'CPRSWT.HLP'
-  OldCreateOrder = True
   Position = poScreenCenter
   OnCreate = FormCreate
-  OnDestroy = FormDestroy
-  ExplicitWidth = 435
   ExplicitHeight = 397
   PixelsPerInch = 96
@@ -1359,8 +1355,8 @@
         end
         object memReport2: TMemo
-          Left = 128
-          Top = 213
+          Left = 135
+          Top = 212
           Width = 273
-          Height = 47
+          Height = 48
           TabStop = False
           BorderStyle = bsNone
Index: cprs/trunk/CPRS-Chart/Options/fOptions.pas
===================================================================
--- cprs/trunk/CPRS-Chart/Options/fOptions.pas	(revision 829)
+++ cprs/trunk/CPRS-Chart/Options/fOptions.pas	(revision 1679)
@@ -5,8 +5,8 @@
 uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
   Buttons, ComCtrls, ExtCtrls, ORCtrls, OrFn, Dialogs, ORDtTmRng, fBAOptionsDiagnoses,
-  uBAGlobals, fBase508Form, VA508AccessibilityManager;
+  uBAGlobals, fBase508Form, VA508AccessibilityManager, fAutoSz;
 
 type
-  TfrmOptions = class(TfrmBase508Form)
+  TfrmOptions = class(TfrmAutoSz)
     pnlMain: TPanel;
     pnlBottom: TPanel;
Index: cprs/trunk/CPRS-Chart/Options/fOptionsCombinations.pas
===================================================================
--- cprs/trunk/CPRS-Chart/Options/fOptionsCombinations.pas	(revision 829)
+++ cprs/trunk/CPRS-Chart/Options/fOptionsCombinations.pas	(revision 1679)
@@ -185,5 +185,8 @@
   if copy(valuesource, 1, 1) = '&' then
     valuesource := copy(valuesource, 2, length(valuesource) - 1);
-  valuename := Piece(lstAddBy.DisplayText[lstAddBy.ItemIndex], '-', 1);
+ { if radAddByType.ItemIndex = 2 then
+   valuename := Piece(lstAddBy.DisplayText[lstAddBy.ItemIndex], '-', 1)
+  else } //Removed per PTM 274 - should not peice by the "-" at all
+   valuename := lstAddBy.DisplayText[lstAddBy.ItemIndex];
   valueien := Piece(lstAddBy.Items[lstAddBy.ItemIndex], '^', 1);
   if Duplicate(valueien, valuesource) then exit; // check for duplicates
Index: cprs/trunk/CPRS-Chart/Options/fOptionsLists.dfm
===================================================================
--- cprs/trunk/CPRS-Chart/Options/fOptionsLists.dfm	(revision 829)
+++ cprs/trunk/CPRS-Chart/Options/fOptionsLists.dfm	(revision 1679)
@@ -12,8 +12,6 @@
   OnCreate = FormCreate
   OnShow = FormShow
-  ExplicitLeft = 354
-  ExplicitTop = 178
-  ExplicitWidth = 415
-  ExplicitHeight = 469
+  ExplicitWidth = 413
+  ExplicitHeight = 474
   PixelsPerInch = 96
   TextHeight = 13
@@ -123,6 +121,6 @@
     SynonymChars = '<>'
     TabOrder = 1
+    OnChange = lstAddByChange
     OnClick = lstAddByClick
-    OnKeyPress = lstAddByKeyPress
     OnNeedData = lstAddByNeedData
     CharsNeedMatch = 1
Index: cprs/trunk/CPRS-Chart/Options/fOptionsLists.pas
===================================================================
--- cprs/trunk/CPRS-Chart/Options/fOptionsLists.pas	(revision 829)
+++ cprs/trunk/CPRS-Chart/Options/fOptionsLists.pas	(revision 1679)
@@ -58,4 +58,5 @@
     procedure lstAddByKeyPress(Sender: TObject; var Key: Char);
     procedure grpVisibilityClick(Sender: TObject);
+    procedure lstAddByChange(Sender: TObject);
   private
     { Private declarations }
@@ -146,5 +147,5 @@
     case radAddByType.ItemIndex of
       0: begin
-           ListItemsOnly := true;
+           ListItemsOnly := false;
            LongList := true;
            InitLongList('');
@@ -256,4 +257,35 @@
 end;
 
+procedure TfrmOptionsLists.lstAddByChange(Sender: TObject);
+  procedure ShowMatchingPatients;
+  begin
+    with lstAddBy do begin
+      if ShortCount > 0 then begin
+        if ShortCount = 1 then begin
+          ItemIndex := 0;
+        end;
+        Items.Add(LLS_LINE);
+        Items.Add(LLS_SPACE);
+      end;
+      InitLongList('');
+    end;
+  end;
+
+begin
+  inherited;
+  if radAddByType.ItemIndex = 0 {patient} then begin
+    with lstAddBy do
+    if frmPtSelOptns.IsLast5(Text) then begin
+        ListPtByLast5(Items, Text);
+        ShowMatchingPatients;
+      end
+    else if frmPtSelOptns.IsFullSSN(Text) then begin
+        ListPtByFullSSN(Items, Text);
+        ShowMatchingPatients;
+    end;
+  end;
+end;
+
+
 procedure TfrmOptionsLists.lstAddByClick(Sender: TObject);
 var
@@ -266,4 +298,5 @@
   if lstAddBy.ItemIndex < 0 then exit;
   ien := Piece(lstAddBy.Items[lstAddBy.ItemIndex], '^', 1);
+  If ien = '' then exit;
   case radAddByType.ItemIndex of
     0:
Index: cprs/trunk/CPRS-Chart/Options/fOptionsNotes.pas
===================================================================
--- cprs/trunk/CPRS-Chart/Options/fOptionsNotes.pas	(revision 829)
+++ cprs/trunk/CPRS-Chart/Options/fOptionsNotes.pas	(revision 1679)
@@ -32,4 +32,5 @@
     procedure cboCosignerExit(Sender: TObject);
   private
+    FStartingCosigner: Int64;
     { Private declarations }
   public
@@ -98,5 +99,5 @@
   cboCosigner.InitLongList(cosignername);
   cboCosigner.SelectByIEN(cosigner);
-  cboCosigner.Tag := cosigner;
+  FStartingCosigner := cosigner;
   chkAskSubject.Checked := rpcGetSubject;
   if chkAskSubject.Checked then chkAskSubject.Tag := 1;
@@ -126,5 +127,5 @@
     rpcSetSubject(Checked);
   with cboCosigner do
-    if Tag <> ItemIEN then
+    if FStartingCosigner <> ItemIEN then
       rpcSetDefaultCosigner(ItemIEN);
   ResetTIUPreferences;
Index: cprs/trunk/CPRS-Chart/Options/fOptionsOther.dfm
===================================================================
--- cprs/trunk/CPRS-Chart/Options/fOptionsOther.dfm	(revision 829)
+++ cprs/trunk/CPRS-Chart/Options/fOptionsOther.dfm	(revision 1679)
@@ -13,4 +13,5 @@
   Position = poScreenCenter
   ShowHint = True
+  OnCloseQuery = FormCloseQuery
   OnCreate = FormCreate
   OnShow = FormShow
@@ -97,4 +98,5 @@
       ModalResult = 2
       TabOrder = 1
+      OnClick = btnCancelClick
     end
   end
Index: cprs/trunk/CPRS-Chart/Options/fOptionsOther.pas
===================================================================
--- cprs/trunk/CPRS-Chart/Options/fOptionsOther.pas	(revision 829)
+++ cprs/trunk/CPRS-Chart/Options/fOptionsOther.pas	(revision 1679)
@@ -48,4 +48,6 @@
     procedure txtEncStopExit(Sender: TObject);
     procedure btnEncDefaultsClick(Sender: TObject);
+    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
+    procedure btnCancelClick(Sender: TObject);
   private
     { Private declarations }
@@ -53,4 +55,5 @@
     FstopDt: TFMDateTime;
     FEncStartDays, FEncStopDays, FEncDefStartDays, FEncDefStopDays: integer;
+    OK2Closed: boolean;
     //FDefaultEvent: string;
   public
@@ -107,4 +110,5 @@
   values, tab: string;
 begin
+  OK2Closed := True;
   FastAssign(rpcGetOtherTabs, cboTab.Items);
   if (cboTab.Items.IndexOf('Surgery') > -1) and (not ShowSurgeryTab) then
@@ -142,4 +146,5 @@
   values, theVal: string;
 begin
+  OK2Closed := True;
   values := '';
   if cboTab.ItemIEN <> cboTab.Tag then
@@ -154,4 +159,38 @@
   values := values + '^^';
   rpcSetOther(values);
+   if (dtStart.Text = '') and (dtStop.Text = '') then
+    begin
+      if InfoBox('A date range is not set for the meds tab. Continue?', 'No Date Range Defined', MB_YESNO) = ID_NO then
+      begin
+         dtStart.SetFocus;
+         OK2Closed := false;
+         Exit;
+      end;
+    end
+  else if (dtStart.Text = '') or (dtStop.Text = '') then
+    begin
+      ShowMsg('A complete date range needs to be set. ');
+      if dtStart.Text = '' then dtStart.SetFocus
+      else dtStop.SetFocus;
+      OK2Closed := false;
+      Exit;
+    end;
+  //if Pos('Y', Uppercase(dtStart.Text))>0 then
+  if Uppercase(Copy(dtStart.Text, Length(dtStart.Text), Length(dtStart.Text))) = 'Y' then
+
+    begin
+      ShowMsg('Start Date relative date cannot have a Y');
+      OK2Closed := false;
+      dtStart.SetFocus;
+      Exit;
+    end;
+  //if Pos('Y', Uppercase(dtStop.Text))>0 then
+  if Uppercase(Copy(dtStop.Text, Length(dtStop.Text), Length(dtStop.Text))) = 'Y' then
+    begin
+      ShowMsg('Stop Date relative date cannot have a Y');
+      OK2Closed := false;
+      dtStart.SetFocus;
+      Exit;
+    end;
   if (dtStop.FMDateTime > 0) and (dtStart.FMDateTime > 0) then
   begin
@@ -161,4 +200,5 @@
       dtStop.FMDateTime := FMToday;
       dtStop.SetFocus;
+      OK2Closed := false;
       Exit;
     end;
@@ -173,4 +213,12 @@
 end;
 
+procedure TfrmOptionsOther.FormCloseQuery(Sender: TObject;
+  var CanClose: Boolean);
+begin
+  inherited;
+  CanClose := OK2Closed;
+  
+end;
+
 procedure TfrmOptionsOther.FormCreate(Sender: TObject);
 begin
@@ -204,5 +252,5 @@
 procedure TfrmOptionsOther.dtStartChange(Sender: TObject);
 begin
-  if (dtStart.FMDateTime > FMToday) then
+ (* if (dtStart.FMDateTime > FMToday) then
   begin
     ShowMsg('Start time can not greater than today.');
@@ -210,5 +258,5 @@
     dtStart.SetFocus;
     Exit;
-  end;
+  end;    *)
 end;
 
@@ -265,4 +313,10 @@
 end;
 
+procedure TfrmOptionsOther.btnCancelClick(Sender: TObject);
+begin
+  inherited;
+  OK2Closed := True;
+end;
+
 procedure TfrmOptionsOther.btnEncDefaultsClick(Sender: TObject);
 begin
