| 1 | unit fPtLabelPrint;
 | 
|---|
| 2 | //kt added this entire unit and form 12/2007
 | 
|---|
| 3 | interface
 | 
|---|
| 4 | 
 | 
|---|
| 5 | uses
 | 
|---|
| 6 |   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 | 
|---|
| 7 |   Dialogs, Spin, StdCtrls, Buttons, jpeg, ExtCtrls, ORCtrls, ORDtTm,
 | 
|---|
| 8 |   Printers, uCore,ORFn;
 | 
|---|
| 9 | 
 | 
|---|
| 10 | type
 | 
|---|
| 11 |   TfrmPtLabelPrint = class(TForm)
 | 
|---|
| 12 |     NameLabel: TLabel;
 | 
|---|
| 13 |     AuthorLabel: TLabel;
 | 
|---|
| 14 |     NoteTypeLabel: TLabel;
 | 
|---|
| 15 |     PrinterComboBox: TComboBox;
 | 
|---|
| 16 |     PrinterLabel: TLabel;
 | 
|---|
| 17 |     DateLabel: TLabel;
 | 
|---|
| 18 |     LocationLabel: TLabel;
 | 
|---|
| 19 |     PrintButton: TBitBtn;
 | 
|---|
| 20 |     DoneButton: TBitBtn;
 | 
|---|
| 21 |     Image1: TImage;
 | 
|---|
| 22 |     cboAuthor: TORComboBox;
 | 
|---|
| 23 |     calDOS: TORDateBox;
 | 
|---|
| 24 |     cboLocation: TORComboBox;
 | 
|---|
| 25 |     cboNoteTitle: TORComboBox;
 | 
|---|
| 26 |     cboPatient: TORComboBox;
 | 
|---|
| 27 |     PrinterSetupDialog: TPrinterSetupDialog;
 | 
|---|
| 28 |     SpeedButton1: TSpeedButton;
 | 
|---|
| 29 |     PtNameLabel: TLabel;
 | 
|---|
| 30 |     PtDOBLabel: TLabel;
 | 
|---|
| 31 |     PtSSNLabel: TLabel;
 | 
|---|
| 32 |     PtName: TLabel;
 | 
|---|
| 33 |     PtDOB: TLabel;
 | 
|---|
| 34 |     PtSSN: TLabel;
 | 
|---|
| 35 |     Label1: TLabel;
 | 
|---|
| 36 |     BarcodeLabel: TLabel;
 | 
|---|
| 37 |     BatchNumComboBox: TComboBox;
 | 
|---|
| 38 |     Label2: TLabel;
 | 
|---|
| 39 |     procedure DoneButtonClick(Sender: TObject);
 | 
|---|
| 40 |     procedure PrintButtonClick(Sender: TObject);
 | 
|---|
| 41 |     procedure FormCreate(Sender: TObject);
 | 
|---|
| 42 |     procedure FormShow(Sender: TObject);
 | 
|---|
| 43 |     procedure cboLocationNeedData(Sender: TObject; const StartFrom: String;
 | 
|---|
| 44 |       Direction, InsertAt: Integer);
 | 
|---|
| 45 |     procedure cboAuthorNeedData(Sender: TObject; const StartFrom: String;
 | 
|---|
| 46 |       Direction, InsertAt: Integer);
 | 
|---|
| 47 |     procedure cboNoteTitleNeedData(Sender: TObject; const StartFrom: String;
 | 
|---|
| 48 |       Direction, InsertAt: Integer);
 | 
|---|
| 49 |     procedure FormDestroy(Sender: TObject);
 | 
|---|
| 50 |     procedure cboPatientNeedData(Sender: TObject; const StartFrom: String;
 | 
|---|
| 51 |       Direction, InsertAt: Integer);
 | 
|---|
| 52 |     procedure calDOSChange(Sender: TObject);
 | 
|---|
| 53 |     procedure calDOSExit(Sender: TObject);
 | 
|---|
| 54 |     procedure FormResize(Sender: TObject);
 | 
|---|
| 55 |     procedure SpeedButton1Click(Sender: TObject);
 | 
|---|
| 56 |     procedure cboPatientChange(Sender: TObject);
 | 
|---|
| 57 |     procedure cboAuthorChange(Sender: TObject);
 | 
|---|
| 58 |     procedure cboNoteTitleChange(Sender: TObject);
 | 
|---|
| 59 |     procedure cboLocationChange(Sender: TObject);
 | 
|---|
| 60 |     procedure PrinterComboBoxChange(Sender: TObject);
 | 
|---|
| 61 |     procedure BatchNumComboBoxChange(Sender: TObject);
 | 
|---|
| 62 |   private
 | 
|---|
| 63 |     { Private declarations }
 | 
|---|
| 64 |     FInitPtIEN : int64;
 | 
|---|
| 65 |     FPrinter : TPrinter;
 | 
|---|
| 66 |     initPatientName : string;
 | 
|---|
| 67 |     //FDateTime: TFMDateTime;
 | 
|---|
| 68 |     //FDateTimeText : string;
 | 
|---|
| 69 |     function CompileBarcodeNumber: String;
 | 
|---|
| 70 |     procedure BarcodeChange(Sender: TObject);
 | 
|---|
| 71 |   public
 | 
|---|
| 72 |     { Public declarations }
 | 
|---|
| 73 |     procedure PrepDialog(Patient : TPatient);
 | 
|---|
| 74 |   end;
 | 
|---|
| 75 | 
 | 
|---|
| 76 | var
 | 
|---|
| 77 |   frmPtLabelPrint: TfrmPtLabelPrint;
 | 
|---|
| 78 | 
 | 
|---|
| 79 | implementation
 | 
|---|
| 80 | 
 | 
|---|
| 81 | {$R *.dfm}
 | 
|---|
| 82 | 
 | 
|---|
| 83 | uses rCore,rTIU,uConst, 
 | 
|---|
| 84 |       IniFiles // for IniFile
 | 
|---|
| 85 |       , fImages;
 | 
|---|
| 86 | 
 | 
|---|
| 87 | const
 | 
|---|
| 88 |   ANY_NUM_PAGES = '<ANY>';
 | 
|---|
| 89 |       
 | 
|---|
| 90 | procedure TfrmPtLabelPrint.PrepDialog(Patient : TPatient);
 | 
|---|
| 91 | begin
 | 
|---|
| 92 |   initPatientName := Patient.Name;
 | 
|---|
| 93 |   FInitPtIEN := StrToInt(Patient.DFN);
 | 
|---|
| 94 | end;
 | 
|---|
| 95 | 
 | 
|---|
| 96 | procedure TfrmPtLabelPrint.DoneButtonClick(Sender: TObject);
 | 
|---|
| 97 | begin
 | 
|---|
| 98 |   ModalResult := mrOK;  //to close form.
 | 
|---|
| 99 | end;
 | 
|---|
| 100 | 
 | 
|---|
| 101 | 
 | 
|---|
| 102 | function TfrmPtLabelPrint.CompileBarcodeNumber: String;
 | 
|---|
| 103 | var
 | 
|---|
| 104 |   DateOfService: string;
 | 
|---|
| 105 |   PtIEN, AuthorIEN, NoteTypeIEN, LocIEN : int64;
 | 
|---|
| 106 |   BCLine,BatchFlag: string;
 | 
|---|
| 107 |   PtIDInfo : TPtIDInfo;
 | 
|---|
| 108 | begin
 | 
|---|
| 109 |   PtIEN := cboPatient.ItemIEN;  //check this
 | 
|---|
| 110 |   PtIDInfo := rCore.GetPtIDInfo(IntToStr(PtIEN));
 | 
|---|
| 111 |   DateOfService := FormatFMDateTime('mm"-"dd"-"yyyy', calDOS.FMDateTime);
 | 
|---|
| 112 |   AuthorIEN := cboAuthor.ItemIEN;
 | 
|---|
| 113 |   LocIEN := cboLocation.ItemIEN;
 | 
|---|
| 114 |   NoteTypeIEN :=  cboNoteTitle.ItemIEN;
 | 
|---|
| 115 |   BatchFlag := BatchNumComboBox.Text;
 | 
|---|
| 116 |   if BatchFlag = ANY_NUM_PAGES then BatchFlag := '*';
 | 
|---|
| 117 |   
 | 
|---|
| 118 |   // 70685-12-31-2008-73-6-1302-0
 | 
|---|
| 119 |   //Note: *** If this changes, then change format in UploadImages.ScanAndHandleImages
 | 
|---|
| 120 |   BCLine := IntToStr(PtIEN) + '-' + DateOfService + '-' +
 | 
|---|
| 121 |             IntToStr(AuthorIEN) + '-' + 
 | 
|---|
| 122 |             IntToStr(LocIEN) + '-' + IntToStr(NoteTypeIEN) + '-' +
 | 
|---|
| 123 |             BatchFlag;
 | 
|---|
| 124 | 
 | 
|---|
| 125 |   Result := BCLine;            
 | 
|---|
| 126 | end;
 | 
|---|
| 127 | 
 | 
|---|
| 128 | procedure TfrmPtLabelPrint.PrintButtonClick(Sender: TObject);
 | 
|---|
| 129 | var
 | 
|---|
| 130 |   DateOfService: string;
 | 
|---|
| 131 |   PtIEN, AuthorIEN, NoteTypeIEN, LocIEN : int64;
 | 
|---|
| 132 |   BCLine : string;
 | 
|---|
| 133 |   NameLine,DOBLine,ProvLine,LocLine,TitleLine : string;
 | 
|---|
| 134 |   //BatchFlag: string;
 | 
|---|
| 135 |   YPos,XPos : integer;    
 | 
|---|
| 136 |   PtIDInfo : TPtIDInfo;
 | 
|---|
| 137 |   FNamePath : AnsiString;
 | 
|---|
| 138 |   pic : TPicture;
 | 
|---|
| 139 |   SrcRec,DestRec :TRect; 
 | 
|---|
| 140 |   DestPos : TPoint;
 | 
|---|
| 141 |   barcodeWidth,barcodeHeight : integer;
 | 
|---|
| 142 | 
 | 
|---|
| 143 | Const
 | 
|---|
| 144 |    BarCodeSize=310;
 | 
|---|
| 145 |    LMargin = 1;
 | 
|---|
| 146 |    TMargin = 1;
 | 
|---|
| 147 |      
 | 
|---|
| 148 | begin
 | 
|---|
| 149 |   PtIEN := cboPatient.ItemIEN;  //check this
 | 
|---|
| 150 |   PtIDInfo := rCore.GetPtIDInfo(IntToStr(PtIEN));
 | 
|---|
| 151 |   //DateOfService := FormatFMDateTime('mm"-"dd"-"yyyy', calDOS.FMDateTime);
 | 
|---|
| 152 |   
 | 
|---|
| 153 |   //AuthorIEN := cboAuthor.ItemIEN;
 | 
|---|
| 154 |   //LocIEN := cboLocation.ItemIEN;
 | 
|---|
| 155 |   //NoteTypeIEN :=  cboNoteTitle.ItemIEN;
 | 
|---|
| 156 |   //if BatchCB.Checked = true then begin
 | 
|---|
| 157 |   //  BatchFlag := '1'; 
 | 
|---|
| 158 |   //end else begin
 | 
|---|
| 159 |   //  BatchFlag := '0'; 
 | 
|---|
| 160 |   //end;  
 | 
|---|
| 161 |   
 | 
|---|
| 162 |   YPos := TMargin+25;
 | 
|---|
| 163 |   XPos := LMargin+BarCodeSize+10;
 | 
|---|
| 164 |   BCLine := CompileBarcodeNumber;
 | 
|---|
| 165 | 
 | 
|---|
| 166 |   //TEST,KILLME
 | 
|---|
| 167 |   //DOB: 04-02-1956
 | 
|---|
| 168 |   NameLine := PtIDInfo.Name;
 | 
|---|
| 169 |   DOBLine :=  'DOB: ' + PtIDInfo.DOB;
 | 
|---|
| 170 |   //DOBLine := DOBLine + BatchNumComboBox.Text;
 | 
|---|
| 171 |   ProvLine := Trim(piece(cboAuthor.Text,'-',1));
 | 
|---|
| 172 |   LocLine :=  cboLocation.Text;
 | 
|---|
| 173 |   if Pos('<',cboNoteTitle.Text)>0 then begin
 | 
|---|
| 174 |     TitleLine := piece(cboNoteTitle.Text,'<',2);
 | 
|---|
| 175 |     TitleLine := piece(TitleLine,'>',1)
 | 
|---|
| 176 |   end else begin
 | 
|---|
| 177 |     TitleLine := cboNoteTitle.Text;
 | 
|---|
| 178 |   end;
 | 
|---|
| 179 | 
 | 
|---|
| 180 |   FPrinter.PrinterIndex := PrinterComboBox.ItemIndex;
 | 
|---|
| 181 |   FPrinter.Orientation := poLandscape;
 | 
|---|
| 182 |   FPrinter.Title := 'Patient Label -- ' + PtIDInfo.Name;
 | 
|---|
| 183 |   //FPrinter.Copies := StrToInt(QuantitySpinEdit.Text);
 | 
|---|
| 184 | 
 | 
|---|
| 185 |   try
 | 
|---|
| 186 |     pic := TPicture.Create;
 | 
|---|
| 187 |     FNamePath := frmImages.CreateBarcode(BCLine,'png');
 | 
|---|
| 188 |     pic.LoadFromFile(FNamePath);  
 | 
|---|
| 189 |     //barcodeWidth := pic.Bitmap.Width;
 | 
|---|
| 190 |     //barcodeHeight := pic.Bitmap.Height;
 | 
|---|
| 191 |     SrcRec.Top := 0;
 | 
|---|
| 192 |     SrcRec.Left := 0;
 | 
|---|
| 193 |     SrcRec.Right := 32;
 | 
|---|
| 194 |     SrcRec.Bottom := 32;
 | 
|---|
| 195 | 
 | 
|---|
| 196 |     DestPos.X := LMargin;
 | 
|---|
| 197 |     DestPos.Y := TMargin;
 | 
|---|
| 198 |     DestRec.TopLeft := DestPos;
 | 
|---|
| 199 |     DestRec.Right := DestPos.X+BarCodeSize;
 | 
|---|
| 200 |     DestRec.Bottom := DestPos.Y+BarCodeSize;
 | 
|---|
| 201 |            
 | 
|---|
| 202 |     FPrinter.BeginDoc; //start print job.
 | 
|---|
| 203 | 
 | 
|---|
| 204 |     //copy barcode bitmap to printer canvas.
 | 
|---|
| 205 |     FPrinter.Canvas.CopyMode := cmSrcCopy;
 | 
|---|
| 206 |     FPrinter.Canvas.StretchDraw(DestRec,pic.Graphic);
 | 
|---|
| 207 |     
 | 
|---|
| 208 |     FPrinter.Canvas.Font.Name := 'Arial';
 | 
|---|
| 209 |     FPrinter.Canvas.Font.Size := 10;  //# point
 | 
|---|
| 210 |       
 | 
|---|
| 211 |     //Print out Name line      
 | 
|---|
| 212 |     FPrinter.Canvas.TextOut(XPos,YPos,NameLine);
 | 
|---|
| 213 |     YPos := YPos + FPrinter.Canvas.TextHeight(NameLine)+5;
 | 
|---|
| 214 |   
 | 
|---|
| 215 |     FPrinter.Canvas.Font.Size := 8;  //# point
 | 
|---|
| 216 |     //Print out DOB line      
 | 
|---|
| 217 |     FPrinter.Canvas.TextOut(XPos,YPos,DOBLine);
 | 
|---|
| 218 |     YPos := YPos + FPrinter.Canvas.TextHeight(DOBLine)+5;
 | 
|---|
| 219 |   
 | 
|---|
| 220 |     //Print out Provider/Author line      
 | 
|---|
| 221 |     FPrinter.Canvas.TextOut(XPos,YPos,ProvLine);
 | 
|---|
| 222 |     YPos := YPos + FPrinter.Canvas.TextHeight(ProvLine)+5;
 | 
|---|
| 223 | 
 | 
|---|
| 224 |     //Print out Location line      
 | 
|---|
| 225 |     FPrinter.Canvas.TextOut(XPos,YPos,LocLine);
 | 
|---|
| 226 |     YPos := YPos + FPrinter.Canvas.TextHeight(LocLine)+5;
 | 
|---|
| 227 | 
 | 
|---|
| 228 |     //Print out Note Title line      
 | 
|---|
| 229 |     FPrinter.Canvas.TextOut(XPos,YPos,TitleLine);
 | 
|---|
| 230 |     YPos := YPos + FPrinter.Canvas.TextHeight(TitleLine)+5;
 | 
|---|
| 231 |   
 | 
|---|
| 232 |     //Print out clear-text of barcode data line 
 | 
|---|
| 233 |     FPrinter.Canvas.Font.Size := 8;  //x point
 | 
|---|
| 234 |     FPrinter.Canvas.TextOut(XPos,YPos,BCLine);
 | 
|---|
| 235 |     YPos := YPos + FPrinter.Canvas.TextHeight(BCLine)+5;
 | 
|---|
| 236 |     
 | 
|---|
| 237 |   finally
 | 
|---|
| 238 |     FPrinter.EndDoc;  //close and launch print job
 | 
|---|
| 239 |     pic.Free;
 | 
|---|
| 240 |     DeleteFile(FNamePath);
 | 
|---|
| 241 |   end;  
 | 
|---|
| 242 | 
 | 
|---|
| 243 | end;
 | 
|---|
| 244 | 
 | 
|---|
| 245 | 
 | 
|---|
| 246 | procedure TfrmPtLabelPrint.FormCreate(Sender: TObject);
 | 
|---|
| 247 | var  IniFile : TIniFile;
 | 
|---|
| 248 |      defPrinter : string;
 | 
|---|
| 249 | 
 | 
|---|
| 250 | begin
 | 
|---|
| 251 |   FPrinter := TPrinter.Create;
 | 
|---|
| 252 | end;
 | 
|---|
| 253 | 
 | 
|---|
| 254 | 
 | 
|---|
| 255 | procedure TfrmPtLabelPrint.FormShow(Sender: TObject);
 | 
|---|
| 256 | var
 | 
|---|
| 257 |   uTIULocationName: string;
 | 
|---|
| 258 |   uTIULocation: integer;
 | 
|---|
| 259 |   //temp : string;
 | 
|---|
| 260 |   
 | 
|---|
| 261 |   IniFile : TIniFile;
 | 
|---|
| 262 |   defPrinter : string;
 | 
|---|
| 263 | 
 | 
|---|
| 264 | begin
 | 
|---|
| 265 |   cboAuthor.InitLongList(User.Name);
 | 
|---|
| 266 |   cboAuthor.SelectByIEN(User.DUZ);
 | 
|---|
| 267 | 
 | 
|---|
| 268 |   uTIULocation := DfltTIULocation;
 | 
|---|
| 269 |   if uTIULocation <> 0 then uTIULocationName := ExternalName(uTIULocation, FN_HOSPITAL_LOCATION);
 | 
|---|
| 270 |   
 | 
|---|
| 271 |   cboLocation.InitLongList(uTIULocationName);
 | 
|---|
| 272 |   cboLocation.SelectByIEN(uTIULocation);
 | 
|---|
| 273 |   
 | 
|---|
| 274 |   cboNoteTitle.InitLongList('');
 | 
|---|
| 275 |   if cboNoteTitle.Items.Count>0 then cboNoteTitle.ItemIndex := 0;
 | 
|---|
| 276 | 
 | 
|---|
| 277 |   // Assign list box TabPosition, Pieces properties according to type of list to be displayed.
 | 
|---|
| 278 |   // (Always use Piece "2" as the first in the list to assure display of patient's name.)
 | 
|---|
| 279 |   cboPatient.pieces := '2,3'; // This line and next: defaults set - exceptions modifield next.
 | 
|---|
| 280 |   cboPatient.tabPositions := '20,28';
 | 
|---|
| 281 |   cboPatient.InitLongList(initPatientName);
 | 
|---|
| 282 |   cboPatient.SelectByIEN(FInitPtIEN);
 | 
|---|
| 283 |  // temp := cboPatient.Text;
 | 
|---|
| 284 |   cboPatientChange(self);
 | 
|---|
| 285 | 
 | 
|---|
| 286 | 
 | 
|---|
| 287 |   IniFile := TIniFile.Create(ChangeFileExt(Application.ExeName, '.INI'));
 | 
|---|
| 288 |   try
 | 
|---|
| 289 |     defPrinter := IniFile.ReadString('Label Printing','Default Printer','');
 | 
|---|
| 290 |   finally
 | 
|---|
| 291 |     IniFile.Free;
 | 
|---|
| 292 |   end;
 | 
|---|
| 293 | 
 | 
|---|
| 294 |   PrinterComboBox.Items.Clear  ;
 | 
|---|
| 295 |   PrinterComboBox.Items.Assign(FPrinter.Printers);
 | 
|---|
| 296 |   if PrinterComboBox.Items.IndexOf(defPrinter) > -1 then begin
 | 
|---|
| 297 |     PrinterComboBox.ItemIndex := PrinterComboBox.Items.IndexOf(defPrinter);
 | 
|---|
| 298 |   end else if PrinterComboBox.Items.Count > 0 then begin
 | 
|---|
| 299 |     PrinterComboBox.ItemIndex := 0;
 | 
|---|
| 300 |   end;  
 | 
|---|
| 301 |   
 | 
|---|
| 302 | end;
 | 
|---|
| 303 | 
 | 
|---|
| 304 | 
 | 
|---|
| 305 | 
 | 
|---|
| 306 | procedure TfrmPtLabelPrint.cboLocationNeedData(Sender: TObject;
 | 
|---|
| 307 |                                                const StartFrom: String; 
 | 
|---|
| 308 |                                                Direction, InsertAt: Integer);
 | 
|---|
| 309 | begin
 | 
|---|
| 310 |   inherited;
 | 
|---|
| 311 |   cboLocation.ForDataUse(SubSetOfNewLocs(StartFrom, Direction));
 | 
|---|
| 312 | end;
 | 
|---|
| 313 | 
 | 
|---|
| 314 | 
 | 
|---|
| 315 | procedure TfrmPtLabelPrint.cboAuthorNeedData(Sender: TObject;
 | 
|---|
| 316 |                                              const StartFrom: String; 
 | 
|---|
| 317 |                                              Direction, InsertAt: Integer);
 | 
|---|
| 318 | begin
 | 
|---|
| 319 |   (Sender as TORComboBox).ForDataUse(SubSetOfPersons(StartFrom, Direction));
 | 
|---|
| 320 | end;
 | 
|---|
| 321 | 
 | 
|---|
| 322 | 
 | 
|---|
| 323 | procedure TfrmPtLabelPrint.cboNoteTitleNeedData(Sender: TObject;
 | 
|---|
| 324 |                                                const StartFrom: String;
 | 
|---|
| 325 |                                                Direction, InsertAt: Integer);
 | 
|---|
| 326 | var  FIDNoteTitlesOnly : boolean;  
 | 
|---|
| 327 | begin
 | 
|---|
| 328 |   FIDNoteTitlesOnly := false;
 | 
|---|
| 329 |   cboNoteTitle.ForDataUse(SubSetOfNoteTitles(StartFrom, Direction, FIDNoteTitlesOnly));
 | 
|---|
| 330 | end;
 | 
|---|
| 331 | 
 | 
|---|
| 332 | 
 | 
|---|
| 333 | procedure TfrmPtLabelPrint.FormDestroy(Sender: TObject);
 | 
|---|
| 334 | begin
 | 
|---|
| 335 |   FPrinter.free;
 | 
|---|
| 336 | end;
 | 
|---|
| 337 | 
 | 
|---|
| 338 | procedure TfrmPtLabelPrint.cboPatientNeedData(Sender: TObject;
 | 
|---|
| 339 |                                               const StartFrom: String; 
 | 
|---|
| 340 |                                               Direction, InsertAt: Integer);
 | 
|---|
| 341 | var
 | 
|---|
| 342 |   i: Integer;
 | 
|---|
| 343 |   NoAlias, Patient: String;
 | 
|---|
| 344 |   PatientList: TStringList;
 | 
|---|
| 345 | const
 | 
|---|
| 346 |   AliasString = ' -- ALIAS';
 | 
|---|
| 347 |   
 | 
|---|
| 348 | begin
 | 
|---|
| 349 |   //NOTICE: for now I am taking out restrictions regarding restricted
 | 
|---|
| 350 |   //        patient lists.  User will be able to *print a label* for
 | 
|---|
| 351 |   //        any patient (but not open their chart)
 | 
|---|
| 352 | 
 | 
|---|
| 353 | 
 | 
|---|
| 354 |   NoAlias := StartFrom;
 | 
|---|
| 355 |   with Sender as TORComboBox do begin
 | 
|---|
| 356 |     if Items.Count > ShortCount then begin
 | 
|---|
| 357 |       NoAlias := Piece(Items[Items.Count-1], U, 1) + U + NoAlias;
 | 
|---|
| 358 |     end;  
 | 
|---|
| 359 |   end;  
 | 
|---|
| 360 |   if pos(AliasString, NoAlias)> 0 then begin
 | 
|---|
| 361 |     NoAlias := Copy(NoAlias, 1, pos(AliasString, NoAlias)-1);
 | 
|---|
| 362 |   end;  
 | 
|---|
| 363 |   PatientList := TStringList.Create;
 | 
|---|
| 364 |   try
 | 
|---|
| 365 |     begin
 | 
|---|
| 366 |       PatientList.Assign(SubSetOfPatients(NoAlias, Direction));
 | 
|---|
| 367 |       for i := 0 to PatientList.Count-1 do begin  // Add " - Alias" to alias names:
 | 
|---|
| 368 |         Patient := PatientList[i];
 | 
|---|
| 369 |         // Piece 6 avoids display problems when mixed with "RPL" lists:
 | 
|---|
| 370 |         if (Uppercase(Piece(Patient, U, 2)) <> Uppercase(Piece(Patient, U, 6))) then begin
 | 
|---|
| 371 |           SetPiece(Patient, U, 2, Piece(Patient, U, 2) + AliasString);
 | 
|---|
| 372 |           PatientList[i] := Patient;
 | 
|---|
| 373 |         end;
 | 
|---|
| 374 |       end;
 | 
|---|
| 375 |       cboPatient.ForDataUse(PatientList);
 | 
|---|
| 376 |     end;
 | 
|---|
| 377 |   finally
 | 
|---|
| 378 |     PatientList.Free;
 | 
|---|
| 379 |   end;  
 | 
|---|
| 380 | end;
 | 
|---|
| 381 | 
 | 
|---|
| 382 | 
 | 
|---|
| 383 | 
 | 
|---|
| 384 | procedure TfrmPtLabelPrint.calDOSChange(Sender: TObject);
 | 
|---|
| 385 | begin
 | 
|---|
| 386 |   //FDateTime := calDOS.FMDateTime;
 | 
|---|
| 387 |   BarcodeChange(self);
 | 
|---|
| 388 | end;
 | 
|---|
| 389 | 
 | 
|---|
| 390 | procedure TfrmPtLabelPrint.calDOSExit(Sender: TObject);
 | 
|---|
| 391 | begin
 | 
|---|
| 392 | //  FDateTimeText := FormatFMDateTime('mmm dd,yyyy', FDateTime);
 | 
|---|
| 393 | end;
 | 
|---|
| 394 | 
 | 
|---|
| 395 | procedure TfrmPtLabelPrint.FormResize(Sender: TObject);
 | 
|---|
| 396 | begin
 | 
|---|
| 397 |   //if Width < 375 then Width := 375;
 | 
|---|
| 398 |   //if Width > 500 then Width := 500;
 | 
|---|
| 399 |   //if Height <> 345 then Height := 345;
 | 
|---|
| 400 | end;
 | 
|---|
| 401 | 
 | 
|---|
| 402 | procedure TfrmPtLabelPrint.SpeedButton1Click(Sender: TObject);
 | 
|---|
| 403 | begin
 | 
|---|
| 404 |   PrinterSetupDialog.Execute;
 | 
|---|
| 405 | end;
 | 
|---|
| 406 | 
 | 
|---|
| 407 | procedure TfrmPtLabelPrint.cboPatientChange(Sender: TObject);
 | 
|---|
| 408 | var
 | 
|---|
| 409 |   PtIDInfo : TPtIDInfo;
 | 
|---|
| 410 |   PtIEN : int64;
 | 
|---|
| 411 | begin
 | 
|---|
| 412 |   PtIEN := cboPatient.ItemIEN;  
 | 
|---|
| 413 |   PtIDInfo := rCore.GetPtIDInfo(IntToStr(PtIEN));
 | 
|---|
| 414 |   PtName.Caption := PtIDInfo.Name;
 | 
|---|
| 415 |   PtDOB.Caption :=  PtIDInfo.DOB;
 | 
|---|
| 416 |   PtSSN.Caption := PtIDInfo.SSN;
 | 
|---|
| 417 |   BarcodeChange(self);
 | 
|---|
| 418 | end;
 | 
|---|
| 419 | 
 | 
|---|
| 420 | procedure TfrmPtLabelPrint.BarcodeChange(Sender: TObject);
 | 
|---|
| 421 | begin
 | 
|---|
| 422 |   BarcodeLabel.Caption := CompileBarcodeNumber;
 | 
|---|
| 423 | end;
 | 
|---|
| 424 | 
 | 
|---|
| 425 | 
 | 
|---|
| 426 | procedure TfrmPtLabelPrint.cboAuthorChange(Sender: TObject);
 | 
|---|
| 427 | begin
 | 
|---|
| 428 |   BarcodeChange(self);
 | 
|---|
| 429 | end;
 | 
|---|
| 430 | 
 | 
|---|
| 431 | procedure TfrmPtLabelPrint.cboNoteTitleChange(Sender: TObject);
 | 
|---|
| 432 | begin
 | 
|---|
| 433 |   BarcodeChange(self);
 | 
|---|
| 434 | end;
 | 
|---|
| 435 | 
 | 
|---|
| 436 | procedure TfrmPtLabelPrint.cboLocationChange(Sender: TObject);
 | 
|---|
| 437 | begin
 | 
|---|
| 438 |   BarcodeChange(self);
 | 
|---|
| 439 | end;
 | 
|---|
| 440 | 
 | 
|---|
| 441 | procedure TfrmPtLabelPrint.PrinterComboBoxChange(Sender: TObject);
 | 
|---|
| 442 | var  IniFile : TIniFile;
 | 
|---|
| 443 |      defPrinter : string;
 | 
|---|
| 444 | begin
 | 
|---|
| 445 |   FPrinter := TPrinter.Create;
 | 
|---|
| 446 |   IniFile := TIniFile.Create(ChangeFileExt(Application.ExeName, '.INI'));
 | 
|---|
| 447 |   defPrinter := PrinterComboBox.Items.Strings[PrinterComboBox.ItemIndex];
 | 
|---|
| 448 |   try
 | 
|---|
| 449 |     IniFile.WriteString('Label Printing','Default Printer',defPrinter);
 | 
|---|
| 450 |   finally
 | 
|---|
| 451 |     IniFile.Free;
 | 
|---|
| 452 |   end;
 | 
|---|
| 453 | end; 
 | 
|---|
| 454 | 
 | 
|---|
| 455 | procedure TfrmPtLabelPrint.BatchNumComboBoxChange(Sender: TObject);
 | 
|---|
| 456 | var temp : integer;
 | 
|---|
| 457 | begin
 | 
|---|
| 458 |   if BatchNumComboBox.Text <> ANY_NUM_PAGES then begin
 | 
|---|
| 459 |     temp := 0;
 | 
|---|
| 460 |     try
 | 
|---|
| 461 |       temp := StrToInt(BatchNumComboBox.Text);
 | 
|---|
| 462 |     except
 | 
|---|
| 463 |       on E:EConvertError do begin
 | 
|---|
| 464 |         temp := 0;
 | 
|---|
| 465 |       end;
 | 
|---|
| 466 |     end;
 | 
|---|
| 467 |     if temp < 1 then begin
 | 
|---|
| 468 |       MessageDlg('Invalid Number.',mtError,[mbOK],0);
 | 
|---|
| 469 |       BatchNumComboBox.Text := '1';
 | 
|---|
| 470 |     end;
 | 
|---|
| 471 |   end;
 | 
|---|
| 472 |   BarcodeChange(self);
 | 
|---|
| 473 | end;
 | 
|---|
| 474 | 
 | 
|---|
| 475 | end.
 | 
|---|
| 476 | 
 | 
|---|
| 477 | 
 | 
|---|