| [459] | 1 | unit uTIU; | 
|---|
|  | 2 |  | 
|---|
|  | 3 | interface | 
|---|
|  | 4 |  | 
|---|
|  | 5 | uses SysUtils, Classes, ORNet, ORFn, rCore, uCore, uConst, ORCtrls, ComCtrls, Controls; | 
|---|
|  | 6 |  | 
|---|
|  | 7 | type | 
|---|
|  | 8 |  | 
|---|
|  | 9 | TEditNoteRec = record | 
|---|
|  | 10 | DocType: Integer; | 
|---|
|  | 11 | IsNewNote: boolean; | 
|---|
|  | 12 | Title: Integer; | 
|---|
|  | 13 | TitleName: string; | 
|---|
|  | 14 | DateTime: TFMDateTime; | 
|---|
|  | 15 | Author: Int64; | 
|---|
|  | 16 | AuthorName: string; | 
|---|
|  | 17 | Cosigner: Int64; | 
|---|
|  | 18 | CosignerName: string; | 
|---|
|  | 19 | Subject: string; | 
|---|
|  | 20 | Location: Integer; | 
|---|
|  | 21 | LocationName: string; | 
|---|
|  | 22 | VisitDate: TFMDateTime; | 
|---|
|  | 23 | PkgRef: string;      // 'IEN;GMR(123,' or 'IEN;SRF(' | 
|---|
|  | 24 | PkgIEN: integer;     // file IEN | 
|---|
|  | 25 | PkgPtr: string;      // 'GMR(123,' or 'SRF(' | 
|---|
|  | 26 | NeedCPT: Boolean; | 
|---|
|  | 27 | Addend: Integer; | 
|---|
|  | 28 | LastCosigner: Int64; | 
|---|
|  | 29 | LastCosignerName: string; | 
|---|
|  | 30 | IDParent: integer; | 
|---|
|  | 31 | ClinProcSummCode: integer; | 
|---|
|  | 32 | ClinProcDateTime: TFMDateTime; | 
|---|
|  | 33 | Lines: TStrings; | 
|---|
| [460] | 34 | PRF_IEN: integer; | 
|---|
|  | 35 | ActionIEN: string; | 
|---|
| [459] | 36 | end; | 
|---|
|  | 37 |  | 
|---|
|  | 38 | TNoteRec = TEditNoteRec; | 
|---|
|  | 39 |  | 
|---|
|  | 40 | TActionRec = record | 
|---|
|  | 41 | Success: Boolean; | 
|---|
|  | 42 | Reason: string; | 
|---|
|  | 43 | end; | 
|---|
|  | 44 |  | 
|---|
|  | 45 | TCreatedDoc = record | 
|---|
|  | 46 | IEN: Integer; | 
|---|
|  | 47 | ErrorText: string; | 
|---|
|  | 48 | end; | 
|---|
|  | 49 |  | 
|---|
|  | 50 | TTIUContext = record | 
|---|
|  | 51 | Changed: Boolean; | 
|---|
|  | 52 | BeginDate: string; | 
|---|
|  | 53 | EndDate: string; | 
|---|
|  | 54 | FMBeginDate: TFMDateTime; | 
|---|
|  | 55 | FMEndDate: TFMDateTime; | 
|---|
|  | 56 | Status: string; | 
|---|
|  | 57 | Author: int64; | 
|---|
|  | 58 | MaxDocs: integer; | 
|---|
|  | 59 | ShowSubject: Boolean; | 
|---|
|  | 60 | SortBy: string; | 
|---|
|  | 61 | ListAscending: Boolean; | 
|---|
|  | 62 | GroupBy: string; | 
|---|
|  | 63 | TreeAscending: Boolean; | 
|---|
|  | 64 | SearchField: string; | 
|---|
|  | 65 | KeyWord: string; | 
|---|
|  | 66 | Filtered: Boolean; | 
|---|
| [460] | 67 | SearchString: String;  // Text Search CQ: HDS00002856 | 
|---|
| [459] | 68 | end ; | 
|---|
|  | 69 |  | 
|---|
|  | 70 | TNoteTitles = class | 
|---|
|  | 71 | DfltTitle: Integer; | 
|---|
|  | 72 | DfltTitleName: string; | 
|---|
|  | 73 | ShortList: TStringList; | 
|---|
|  | 74 | constructor Create; | 
|---|
|  | 75 | destructor Destroy; override; | 
|---|
|  | 76 | end; | 
|---|
|  | 77 |  | 
|---|
|  | 78 | TTIUPrefs = class | 
|---|
|  | 79 | DfltLoc: Integer; | 
|---|
|  | 80 | DfltLocName: string; | 
|---|
|  | 81 | SortAscending: Boolean; | 
|---|
|  | 82 | SortBy: string;    // D,R,S,A | 
|---|
|  | 83 | AskNoteSubject: Boolean; | 
|---|
|  | 84 | AskCosigner: Boolean; | 
|---|
|  | 85 | DfltCosigner: Int64; | 
|---|
|  | 86 | DfltCosignerName: string; | 
|---|
|  | 87 | MaxNotes: Integer; | 
|---|
|  | 88 | end; | 
|---|
|  | 89 |  | 
|---|
|  | 90 | //  notes tab specific procedures | 
|---|
|  | 91 | function MakeNoteDisplayText(RawText: string): string; | 
|---|
|  | 92 | function MakeConsultDisplayText(RawText:string): string; | 
|---|
|  | 93 | function SetLinesTo74ForSave(AStrings: TStrings; AParent: TWinControl): TStrings; | 
|---|
|  | 94 |  | 
|---|
|  | 95 | const | 
|---|
|  | 96 | TX_SAVE_ERROR1 = 'An error was encountered while trying to save the note you are editing.' + CRLF + CRLF + '    Error:  '; | 
|---|
|  | 97 | TX_SAVE_ERROR2 = CRLF + CRLF + 'Please try again now using CTRL-SHIFT-S, or ''Save without signature''.' + CRLF + | 
|---|
|  | 98 | 'These actions will improve the likelihood that no text will be lost.' + CRLF + CRLF + | 
|---|
|  | 99 | 'If problems continue, or network connectivity is lost, please copy all of your text to' + CRLF + | 
|---|
|  | 100 | 'the clipboard and paste it into Microsoft Word before continuing or before closing CPRS.'; | 
|---|
|  | 101 | TC_SAVE_ERROR =  'Error saving note text'; | 
|---|
|  | 102 |  | 
|---|
|  | 103 | implementation | 
|---|
|  | 104 |  | 
|---|
|  | 105 | function MakeConsultDisplayText(RawText:string): string; | 
|---|
|  | 106 | var | 
|---|
|  | 107 | x: string; | 
|---|
|  | 108 | begin | 
|---|
|  | 109 | x := RawText; | 
|---|
|  | 110 | Result := Piece(x, U, 2) + ',' + Piece(x, U, 3) + ',' + | 
|---|
|  | 111 | Piece(x, U, 4) + ', '+ Piece(x, U, 5); | 
|---|
|  | 112 |  | 
|---|
|  | 113 | end; | 
|---|
|  | 114 |  | 
|---|
|  | 115 | function MakeNoteDisplayText(RawText: string): string; | 
|---|
|  | 116 | var | 
|---|
|  | 117 | x: string; | 
|---|
|  | 118 | begin | 
|---|
|  | 119 | x := RawText; | 
|---|
|  | 120 | if Piece(x, U, 1) = '' then | 
|---|
|  | 121 | Result := FormatFMDateTime('mmm dd,yy', MakeFMDateTime(Piece(x, U, 3))) + '  ' + | 
|---|
|  | 122 | Piece(x, U, 2) + ', ' + Piece(x, U, 6) + ', ' + Piece(Piece(x, U, 5), ';', 2) | 
|---|
|  | 123 | else if Piece(x, U, 1)[1] in ['A', 'N', 'E'] then | 
|---|
|  | 124 | Result := Piece(x, U, 2) | 
|---|
|  | 125 | else | 
|---|
|  | 126 | Result := FormatFMDateTime('mmm dd,yy', MakeFMDateTime(Piece(x, U, 3))) + '  ' + | 
|---|
|  | 127 | Piece(x, U, 2) + ', ' + Piece(x, U, 6) + ', ' + Piece(Piece(x, U, 5), ';', 2); | 
|---|
|  | 128 | end; | 
|---|
|  | 129 |  | 
|---|
|  | 130 |  | 
|---|
|  | 131 | { Progress Note Titles  -------------------------------------------------------------------- } | 
|---|
|  | 132 | constructor TNoteTitles.Create; | 
|---|
|  | 133 | { creates an object to store progress note titles so only obtained from server once } | 
|---|
|  | 134 | begin | 
|---|
|  | 135 | inherited Create; | 
|---|
|  | 136 | ShortList := TStringList.Create; | 
|---|
|  | 137 | end; | 
|---|
|  | 138 |  | 
|---|
|  | 139 | destructor TNoteTitles.Destroy; | 
|---|
|  | 140 | { frees the lists that were used to store the progress note titles } | 
|---|
|  | 141 | begin | 
|---|
|  | 142 | ShortList.Free; | 
|---|
|  | 143 | inherited Destroy; | 
|---|
|  | 144 | end; | 
|---|
|  | 145 |  | 
|---|
|  | 146 | function SetLinesTo74ForSave(AStrings: TStrings; AParent: TWinControl): TStrings; | 
|---|
|  | 147 | var | 
|---|
|  | 148 | ARichEdit74: TRichEdit; | 
|---|
|  | 149 | begin | 
|---|
|  | 150 | Result := AStrings; | 
|---|
|  | 151 | ARichEdit74 := TRichEdit.Create(AParent); | 
|---|
|  | 152 | try | 
|---|
|  | 153 | with ARichEdit74 do | 
|---|
|  | 154 | begin | 
|---|
|  | 155 | Parent := AParent; | 
|---|
|  | 156 | Lines.Text := AStrings.Text; | 
|---|
|  | 157 | Width := 525; | 
|---|
|  | 158 | Result.Assign(Lines); | 
|---|
|  | 159 | end; | 
|---|
|  | 160 | finally | 
|---|
|  | 161 | ARichEdit74.Free; | 
|---|
|  | 162 | end; | 
|---|
|  | 163 | end; | 
|---|
|  | 164 |  | 
|---|
|  | 165 | end. | 
|---|