| [459] | 1 | unit rDCSumm;
 | 
|---|
 | 2 | 
 | 
|---|
 | 3 | interface
 | 
|---|
 | 4 | 
 | 
|---|
 | 5 | uses SysUtils, Classes, ORNet, ORFn, rCore, uCore, TRPCB, rTIU, uConst, uTIU, uDCSumm;
 | 
|---|
 | 6 | 
 | 
|---|
 | 7 | 
 | 
|---|
 | 8 | { Discharge Summary Titles }
 | 
|---|
 | 9 | procedure ResetDCSummTitles;
 | 
|---|
 | 10 | function  DfltDCSummTitle: Integer;
 | 
|---|
 | 11 | function  DfltDCSummTitleName: string;
 | 
|---|
 | 12 | procedure ListDCSummTitlesShort(Dest: TStrings);
 | 
|---|
 | 13 | function SubSetOfDCSummTitles(const StartFrom: string; Direction: Integer; IDNoteTitlesOnly: boolean): TStrings;
 | 
|---|
 | 14 | 
 | 
|---|
 | 15 | { TIU Preferences }
 | 
|---|
 | 16 | procedure ResetDCSummPreferences;
 | 
|---|
 | 17 | function  ReturnMaxDCSumms: Integer;
 | 
|---|
 | 18 | function  SortDCSummsAscending: Boolean;
 | 
|---|
 | 19 | function  GetCurrentDCSummContext: TTIUContext;
 | 
|---|
 | 20 | procedure SaveCurrentDCSummContext(AContext: TTIUContext) ;
 | 
|---|
 | 21 | 
 | 
|---|
 | 22 | { Data Retrieval }
 | 
|---|
 | 23 | procedure ActOnDCDocument(var AuthSts: TActionRec; IEN: Integer; const ActionName: string);
 | 
|---|
 | 24 | (*procedure ListDischargeSummaries(Dest: TStrings; Context: Integer; Early, Late: TFMDateTime;
 | 
|---|
 | 25 |   Person: int64; OccLim: Integer; SortAscending: Boolean);*)
 | 
|---|
 | 26 | procedure ListSummsForTree(Dest: TStrings; Context: Integer; Early, Late: TFMDateTime;
 | 
|---|
 | 27 |   Person: int64; OccLim: Integer; SortAscending: Boolean);
 | 
|---|
 | 28 | procedure GetDCSummForEdit(var EditRec: TEditDCSummRec; IEN: Integer);
 | 
|---|
 | 29 | function  LoadDCUrgencies: TStrings;
 | 
|---|
 | 30 | function  GetAttending(const DFN: string): string;  //*DFN*
 | 
|---|
 | 31 | function  GetDischargeDate(const DFN: string; AdmitDateTime: string): string;  //*DFN*
 | 
|---|
 | 32 | function RequireRelease(ANote, AType: Integer): Boolean;
 | 
|---|
 | 33 | function RequireMASVerification(ANote, AType: Integer): Boolean;
 | 
|---|
 | 34 | function AllowMultipleSummsPerAdmission(ANote, AType: Integer): Boolean;
 | 
|---|
 | 35 | 
 | 
|---|
 | 36 | { Data Storage }
 | 
|---|
 | 37 | procedure DeleteDCDocument(var DeleteSts: TActionRec; IEN: Integer; const Reason: string);
 | 
|---|
 | 38 | procedure SignDCDocument(var SignSts: TActionRec; IEN: Integer; const ESCode: string); 
 | 
|---|
 | 39 | procedure PutNewDCSumm(var CreatedDoc: TCreatedDoc; const DCSummRec: TDCSummRec);
 | 
|---|
 | 40 | procedure PutDCAddendum(var CreatedDoc: TCreatedDoc; const DCSummRec: TDCSummRec; AddendumTo: 
 | 
|---|
 | 41 | Integer);
 | 
|---|
 | 42 | procedure PutEditedDCSumm(var UpdatedDoc: TCreatedDoc; const DCSummRec: TDCSummRec; NoteIEN: 
 | 
|---|
 | 43 | Integer);
 | 
|---|
 | 44 | procedure ChangeAttending(IEN: integer; AnAttending: int64);
 | 
|---|
 | 45 | 
 | 
|---|
 | 46 | const
 | 
|---|
 | 47 |   CLS_DC_SUMM = 244;
 | 
|---|
 | 48 |   FN_HOSPITAL_LOCATION = 44;
 | 
|---|
 | 49 |   FN_NEW_PERSON = 200;
 | 
|---|
 | 50 |   TIU_ST_UNREL = 3;
 | 
|---|
 | 51 |   TIU_ST_UNVER = 4;
 | 
|---|
 | 52 |   TIU_ST_UNSIG = 5;
 | 
|---|
 | 53 | 
 | 
|---|
 | 54 | implementation
 | 
|---|
 | 55 | 
 | 
|---|
 | 56 | var
 | 
|---|
 | 57 |   uDCSummTitles: TDCSummTitles;
 | 
|---|
 | 58 |   uDCSummPrefs: TDCSummPrefs;
 | 
|---|
 | 59 | 
 | 
|---|
 | 60 | { Discharge Summary Titles  -------------------------------------------------------------------- }
 | 
|---|
 | 61 | procedure LoadDCSummTitles;
 | 
|---|
 | 62 | { private - called one time to set up the uNoteTitles object }
 | 
|---|
 | 63 | var
 | 
|---|
 | 64 |   x: string;
 | 
|---|
 | 65 | begin
 | 
|---|
 | 66 |   if uDCSummTitles <> nil then Exit;
 | 
|---|
 | 67 |   CallV('TIU PERSONAL TITLE LIST', [User.DUZ, CLS_DC_SUMM]);
 | 
|---|
 | 68 |   RPCBrokerV.Results.Insert(0, '~SHORT LIST');  // insert so can call ExtractItems
 | 
|---|
 | 69 |   uDCSummTitles := TDCSummTitles.Create;
 | 
|---|
 | 70 |   ExtractItems(uDCSummTitles.ShortList, RPCBrokerV.Results, 'SHORT LIST');
 | 
|---|
 | 71 |   x := ExtractDefault(RPCBrokerV.Results, 'SHORT LIST');
 | 
|---|
 | 72 |   uDCSummTitles.DfltTitle := StrToIntDef(Piece(x, U, 1), 0);
 | 
|---|
 | 73 |   uDCSummTitles.DfltTitleName := Piece(x, U, 2);
 | 
|---|
 | 74 | end;
 | 
|---|
 | 75 | 
 | 
|---|
 | 76 | procedure ResetDCSummTitles;
 | 
|---|
 | 77 | begin
 | 
|---|
 | 78 |   if uDCSummTitles <> nil then
 | 
|---|
 | 79 |     begin
 | 
|---|
 | 80 |       uDCSummTitles.Free;
 | 
|---|
 | 81 |       uDCSummTitles := nil;
 | 
|---|
 | 82 |       LoadDCSummTitles;
 | 
|---|
 | 83 |     end;
 | 
|---|
 | 84 | end;
 | 
|---|
 | 85 | 
 | 
|---|
 | 86 | function DfltDCSummTitle: Integer;
 | 
|---|
 | 87 | { returns the IEN of the user defined default Discharge Summary title (if any) }
 | 
|---|
 | 88 | begin
 | 
|---|
 | 89 |   if uDCSummTitles = nil then LoadDCSummTitles;
 | 
|---|
 | 90 |   Result := uDCSummTitles.DfltTitle;
 | 
|---|
 | 91 | end;
 | 
|---|
 | 92 | 
 | 
|---|
 | 93 | function DfltDCSummTitleName: string;
 | 
|---|
 | 94 | { returns the name of the user defined default Discharge Summary title (if any) }
 | 
|---|
 | 95 | begin
 | 
|---|
 | 96 |   if uDCSummTitles = nil then LoadDCSummTitles;
 | 
|---|
 | 97 |   Result := uDCSummTitles.DfltTitleName;
 | 
|---|
 | 98 | end;
 | 
|---|
 | 99 | 
 | 
|---|
 | 100 | procedure ListDCSummTitlesShort(Dest: TStrings);
 | 
|---|
 | 101 | { returns the user defined list (short list) of Discharge Summary titles }
 | 
|---|
 | 102 | begin
 | 
|---|
 | 103 |   if uDCSummTitles = nil then LoadDCSummTitles;
 | 
|---|
 | 104 |   Dest.AddStrings(uDCSummTitles.ShortList);
 | 
|---|
 | 105 |   if uDCSummTitles.ShortList.Count > 0 then
 | 
|---|
 | 106 |   begin
 | 
|---|
 | 107 |     Dest.Add('0^________________________________________________________________________');
 | 
|---|
 | 108 |     Dest.Add('0^ ');
 | 
|---|
 | 109 |   end;
 | 
|---|
 | 110 | end;
 | 
|---|
 | 111 | 
 | 
|---|
 | 112 | function SubSetOfDCSummTitles(const StartFrom: string; Direction: Integer; IDNoteTitlesOnly: boolean): TStrings;
 | 
|---|
 | 113 | { returns a pointer to a list of Discharge Summary titles (for use in a long list box) -
 | 
|---|
 | 114 |   The return value is a pointer to RPCBrokerV.Results, so the data must be used BEFORE
 | 
|---|
 | 115 |   the next broker call! }
 | 
|---|
 | 116 | begin
 | 
|---|
 | 117 |   if IDNoteTitlesOnly then
 | 
|---|
 | 118 |     CallV('TIU LONG LIST OF TITLES', [CLS_DC_SUMM, StartFrom, Direction, IDNoteTitlesOnly])
 | 
|---|
 | 119 |   else
 | 
|---|
 | 120 |     CallV('TIU LONG LIST OF TITLES', [CLS_DC_SUMM, StartFrom, Direction]);
 | 
|---|
 | 121 |   //MixedCaseList(RPCBrokerV.Results);
 | 
|---|
 | 122 |   Result := RPCBrokerV.Results;
 | 
|---|
 | 123 | end;
 | 
|---|
 | 124 | 
 | 
|---|
 | 125 | { TIU Preferences  ------------------------------------------------------------------------- }
 | 
|---|
 | 126 | 
 | 
|---|
 | 127 | procedure LoadDCSummPrefs;
 | 
|---|
 | 128 | { private - creates DCSummPrefs object for reference throughout the session }
 | 
|---|
 | 129 | var
 | 
|---|
 | 130 |   x: string;
 | 
|---|
 | 131 | begin
 | 
|---|
 | 132 |   uDCSummPrefs := TDCSummPrefs.Create;
 | 
|---|
 | 133 |   with uDCSummPrefs do
 | 
|---|
 | 134 |   begin
 | 
|---|
 | 135 |     x := sCallV('TIU GET PERSONAL PREFERENCES', [User.DUZ]);
 | 
|---|
 | 136 |     DfltLoc := StrToIntDef(Piece(x, U, 2), 0);
 | 
|---|
 | 137 |     DfltLocName := ExternalName(DfltLoc, FN_HOSPITAL_LOCATION);
 | 
|---|
 | 138 |     SortAscending := Piece(x, U, 4) = 'A';
 | 
|---|
 | 139 |     MaxSumms := StrToIntDef(Piece(x, U, 10), 0);
 | 
|---|
 | 140 |     x := GetAttending(Patient.DFN);
 | 
|---|
 | 141 |     DfltCosigner := StrToInt64Def(Piece(x, U, 1), 0);
 | 
|---|
 | 142 |     DfltCosignerName := ExternalName(DfltCosigner, FN_NEW_PERSON);
 | 
|---|
 | 143 |     AskCosigner := User.DUZ <> DfltCosigner;
 | 
|---|
 | 144 |   end;
 | 
|---|
 | 145 | end;
 | 
|---|
 | 146 | 
 | 
|---|
 | 147 | procedure ResetDCSummPreferences;
 | 
|---|
 | 148 | begin
 | 
|---|
 | 149 |   if uDCSummPrefs <> nil then
 | 
|---|
 | 150 |     begin
 | 
|---|
 | 151 |       uDCSummPrefs.Free;
 | 
|---|
 | 152 |       uDCSummPrefs := nil;
 | 
|---|
 | 153 |       LoadDCSummPrefs;
 | 
|---|
 | 154 |     end;
 | 
|---|
 | 155 | end;
 | 
|---|
 | 156 | 
 | 
|---|
 | 157 | function ReturnMaxDCSumms: Integer;
 | 
|---|
 | 158 | begin
 | 
|---|
 | 159 |   if uDCSummPrefs = nil then LoadDCSummPrefs;
 | 
|---|
 | 160 |   Result := uDCSummPrefs.MaxSumms;
 | 
|---|
 | 161 |   if Result = 0 then Result := 100;
 | 
|---|
 | 162 | end;
 | 
|---|
 | 163 | 
 | 
|---|
 | 164 | function SortDCSummsAscending: Boolean;
 | 
|---|
 | 165 | { returns true if Discharge Summarys should be sorted from oldest to newest (chronological) }
 | 
|---|
 | 166 | begin
 | 
|---|
 | 167 |   if uDCSummPrefs = nil then LoadDCSummPrefs;
 | 
|---|
 | 168 |   Result := uDCSummPrefs.SortAscending;
 | 
|---|
 | 169 | end;
 | 
|---|
 | 170 | 
 | 
|---|
 | 171 | { Data Retrieval --------------------------------------------------------------------------- }
 | 
|---|
 | 172 | 
 | 
|---|
 | 173 | procedure ActOnDCDocument(var AuthSts: TActionRec; IEN: Integer; const ActionName: string);
 | 
|---|
 | 174 | var
 | 
|---|
 | 175 |   x: string;
 | 
|---|
 | 176 | begin
 | 
|---|
 | 177 |   if not (IEN > 0) then
 | 
|---|
 | 178 |   begin
 | 
|---|
 | 179 |     AuthSts.Success := True;
 | 
|---|
 | 180 |     AuthSts.Reason := '';
 | 
|---|
 | 181 |     Exit;
 | 
|---|
 | 182 |   end;
 | 
|---|
 | 183 |   x := sCallV('TIU AUTHORIZATION', [IEN, ActionName]);
 | 
|---|
 | 184 |   AuthSts.Success := Piece(x, U, 1) = '1';
 | 
|---|
 | 185 |   AuthSts.Reason  := Piece(x, U, 2);
 | 
|---|
 | 186 | end;
 | 
|---|
 | 187 | 
 | 
|---|
 | 188 | (*procedure ListDischargeSummaries(Dest: TStrings; Context: Integer; Early, Late: TFMDateTime;
 | 
|---|
 | 189 |   Person: int64; OccLim: Integer; SortAscending: Boolean);
 | 
|---|
 | 190 | { retrieves existing progress notes for a patient according to the parameters passed in
 | 
|---|
 | 191 |   Pieces: IEN^Title^FMDateOfNote^Patient^Author^Location^Status^Visit
 | 
|---|
 | 192 |   Return: IEN^ExDateOfNote^Title, Location, Author }
 | 
|---|
 | 193 | var
 | 
|---|
 | 194 |   i: Integer;
 | 
|---|
 | 195 |   x: string;
 | 
|---|
 | 196 |   SortSeq: Char;
 | 
|---|
 | 197 | begin
 | 
|---|
 | 198 |   if SortAscending then SortSeq := 'A' else SortSeq := 'D';
 | 
|---|
 | 199 |   //if OccLim = 0 then OccLim := MaxSummsReturned;
 | 
|---|
 | 200 |   CallV('TIU DOCUMENTS BY CONTEXT',
 | 
|---|
 | 201 |          [CLS_DC_SUMM, Context, Patient.DFN, Early, Late, Person, OccLim, SortSeq]);
 | 
|---|
 | 202 |   with RPCBrokerV do
 | 
|---|
 | 203 |   begin
 | 
|---|
 | 204 |     for i := 0 to Results.Count - 1 do
 | 
|---|
 | 205 |     begin
 | 
|---|
 | 206 |       x := Results[i];
 | 
|---|
 | 207 |       if Copy(Piece(x, U, 9), 1, 4) = '    ' then SetPiece(x, U, 9, 'Dis: ');
 | 
|---|
 | 208 |       x := Piece(x, U, 1) + U + FormatFMDateTime('mmm dd,yy', MakeFMDateTime(Piece(x, U, 3)))
 | 
|---|
 | 209 |         + U + Piece(x, U, 2) + ', ' + Piece(x, U, 6) + ', ' + Piece(Piece(x, U, 5), ';', 2) +
 | 
|---|
 | 210 |         '  (' + Piece(x,U,7) + '), ' + Piece(x, U, 8) + ', ' + Piece(x, U, 9) +
 | 
|---|
 | 211 |         U + Piece(x, U, 3) + U + Piece(x, U, 11);
 | 
|---|
 | 212 |       Results[i] := x;
 | 
|---|
 | 213 |     end; {for}
 | 
|---|
 | 214 |     Dest.Assign(Results);
 | 
|---|
 | 215 |   end; {with}
 | 
|---|
 | 216 | end;*)
 | 
|---|
 | 217 | 
 | 
|---|
 | 218 | procedure ListSummsForTree(Dest: TStrings; Context: Integer; Early, Late: TFMDateTime;
 | 
|---|
 | 219 |   Person: int64; OccLim: Integer; SortAscending: Boolean);
 | 
|---|
 | 220 | { retrieves existing discharge summaries for a patient according to the parameters passed in}
 | 
|---|
 | 221 | var
 | 
|---|
 | 222 |   SortSeq: Char;
 | 
|---|
 | 223 | const
 | 
|---|
 | 224 |   SHOW_ADDENDA = True;
 | 
|---|
 | 225 | begin
 | 
|---|
 | 226 |   if SortAscending then SortSeq := 'A' else SortSeq := 'D';
 | 
|---|
 | 227 |   if Context > 0 then
 | 
|---|
 | 228 |     begin
 | 
|---|
 | 229 |       CallV('TIU DOCUMENTS BY CONTEXT', [CLS_DC_SUMM, Context, Patient.DFN, Early, Late, Person, OccLim, SortSeq, SHOW_ADDENDA]);
 | 
|---|
 | 230 |       Dest.Assign(RPCBrokerV.Results);
 | 
|---|
 | 231 |     end;
 | 
|---|
 | 232 | end;
 | 
|---|
 | 233 | 
 | 
|---|
 | 234 | procedure GetDCSummForEdit(var EditRec: TEditDCSummRec; IEN: Integer);
 | 
|---|
 | 235 | { retrieves internal/external values for Discharge Summary fields & loads them into EditRec
 | 
|---|
 | 236 |   Fields: Title:.01, RefDate:1301, Author:1204, Cosigner:1208, Subject:1701, Location:1205 }
 | 
|---|
 | 237 | var
 | 
|---|
 | 238 |   i, j: Integer;
 | 
|---|
 | 239 | 
 | 
|---|
 | 240 |   function FindDT(const FieldID: string): TFMDateTime;
 | 
|---|
 | 241 |   var
 | 
|---|
 | 242 |     i: Integer;
 | 
|---|
 | 243 |   begin
 | 
|---|
 | 244 |     Result := 0;
 | 
|---|
 | 245 |     with RPCBrokerV do for i := 0 to Results.Count - 1 do
 | 
|---|
 | 246 |       if Piece(Results[i], U, 1) = FieldID then
 | 
|---|
 | 247 |       begin
 | 
|---|
 | 248 |         Result := MakeFMDateTime(Piece(Results[i], U, 2));
 | 
|---|
 | 249 |         Break;
 | 
|---|
 | 250 |       end;
 | 
|---|
 | 251 |   end;
 | 
|---|
 | 252 | 
 | 
|---|
 | 253 |   function FindExt(const FieldID: string): string;
 | 
|---|
 | 254 |   var
 | 
|---|
 | 255 |     i: Integer;
 | 
|---|
 | 256 |   begin
 | 
|---|
 | 257 |     Result := '';
 | 
|---|
 | 258 |     with RPCBrokerV do for i := 0 to Results.Count - 1 do
 | 
|---|
 | 259 |       if Piece(Results[i], U, 1) = FieldID then
 | 
|---|
 | 260 |       begin
 | 
|---|
 | 261 |         Result := Piece(Results[i], U, 3);
 | 
|---|
 | 262 |         Break;
 | 
|---|
 | 263 |       end;
 | 
|---|
 | 264 |   end;
 | 
|---|
 | 265 | 
 | 
|---|
 | 266 |   function FindInt(const FieldID: string): Integer;
 | 
|---|
 | 267 |   var
 | 
|---|
 | 268 |     i: Integer;
 | 
|---|
 | 269 |   begin
 | 
|---|
 | 270 |     Result := 0;
 | 
|---|
 | 271 |     with RPCBrokerV do for i := 0 to Results.Count - 1 do
 | 
|---|
 | 272 |       if Piece(Results[i], U, 1) = FieldID then
 | 
|---|
 | 273 |       begin
 | 
|---|
 | 274 |         Result := StrToIntDef(Piece(Results[i], U, 2), 0);
 | 
|---|
 | 275 |         Break;
 | 
|---|
 | 276 |       end;
 | 
|---|
 | 277 |   end;
 | 
|---|
 | 278 | 
 | 
|---|
 | 279 |   function FindInt64(const FieldID: string): Int64;
 | 
|---|
 | 280 |   var
 | 
|---|
 | 281 |     i: Integer;
 | 
|---|
 | 282 |   begin
 | 
|---|
 | 283 |     Result := 0;
 | 
|---|
 | 284 |     with RPCBrokerV do for i := 0 to Results.Count - 1 do
 | 
|---|
 | 285 |       if Piece(Results[i], U, 1) = FieldID then
 | 
|---|
 | 286 |       begin
 | 
|---|
 | 287 |         Result := StrToInt64Def(Piece(Results[i], U, 2), 0);
 | 
|---|
 | 288 |         Break;
 | 
|---|
 | 289 |       end;
 | 
|---|
 | 290 |   end;
 | 
|---|
 | 291 | 
 | 
|---|
 | 292 | 
 | 
|---|
 | 293 | begin
 | 
|---|
 | 294 |   CallV('TIU LOAD RECORD FOR EDIT', [IEN, '.01;.06;.07;.09;1202;1205;1208;1209;1301;1302;1307;1701']);
 | 
|---|
 | 295 |   FillChar(EditRec, SizeOf(EditRec), 0);
 | 
|---|
 | 296 |   with EditRec do
 | 
|---|
 | 297 |   begin
 | 
|---|
 | 298 |     Title                 := FindInt('.01');
 | 
|---|
 | 299 |     TitleName             := FindExt('.01');
 | 
|---|
 | 300 |     AdmitDateTime         := FindDT('.07');
 | 
|---|
 | 301 |     DischargeDateTime     := FindDT('1301');
 | 
|---|
 | 302 |     UrgencyName           := FindExt('.09');
 | 
|---|
 | 303 |     Urgency               := Copy(UrgencyName,1,1);
 | 
|---|
 | 304 |     Dictator              := FindInt64('1202');
 | 
|---|
 | 305 |     DictatorName          := FindExt('1202');
 | 
|---|
 | 306 |     Cosigner              := FindInt64('1208');
 | 
|---|
 | 307 |     CosignerName          := FindExt('1208');
 | 
|---|
 | 308 |     DictDateTime          := FindDT('1307');
 | 
|---|
 | 309 |     Attending             := FindInt64('1209');
 | 
|---|
 | 310 |     AttendingName         := FindExt('1209');
 | 
|---|
 | 311 |     Transcriptionist      := FindInt64('1302');
 | 
|---|
 | 312 |     TranscriptionistName  := FindExt('1302');
 | 
|---|
 | 313 |     Location              := FindInt('1205');
 | 
|---|
 | 314 |     LocationName          := FindExt('1205');
 | 
|---|
 | 315 |     if Title = TYP_ADDENDUM then Addend := FindInt('.06');
 | 
|---|
 | 316 |     with RPCBrokerV do
 | 
|---|
 | 317 |     begin
 | 
|---|
 | 318 |       for i := 0 to Results.Count - 1 do if Results[i] = '$TXT' then break;
 | 
|---|
 | 319 |       for j := i downto 0 do Results.Delete(j);
 | 
|---|
 | 320 |       // -------------------- v19.1 (RV) LOST NOTES?----------------------------
 | 
|---|
 | 321 |       //Lines := Results;   'Lines' is being overwritten by subsequent Broker calls
 | 
|---|
 | 322 |       if not Assigned(Lines) then Lines := TStringList.Create;
 | 
|---|
 | 323 |       Lines.Assign(Results);
 | 
|---|
 | 324 |       // -----------------------------------------------------------------------
 | 
|---|
 | 325 |     end;
 | 
|---|
 | 326 |   end;
 | 
|---|
 | 327 | end;
 | 
|---|
 | 328 | 
 | 
|---|
 | 329 | function LoadDCUrgencies: TStrings;
 | 
|---|
 | 330 | var
 | 
|---|
 | 331 |   i: integer;
 | 
|---|
 | 332 | begin
 | 
|---|
 | 333 |   CallV('TIU GET DS URGENCIES',[nil]);
 | 
|---|
 | 334 |   with RPCBrokerV do
 | 
|---|
 | 335 |     for i := 0 to Results.Count-1 do
 | 
|---|
 | 336 |       Results[i] := MixedCase(UpperCase(Results[i]));
 | 
|---|
 | 337 |   Result := RPCBrokerV.Results;
 | 
|---|
 | 338 | end;
 | 
|---|
 | 339 | 
 | 
|---|
 | 340 | { Data Updates ----------------------------------------------------------------------------- }
 | 
|---|
 | 341 | 
 | 
|---|
 | 342 | procedure DeleteDCDocument(var DeleteSts: TActionRec; IEN: Integer; const Reason: string);
 | 
|---|
 | 343 | { delete a TIU document given the internal entry number, return reason if unable to delete }
 | 
|---|
 | 344 | var
 | 
|---|
 | 345 |   x: string;
 | 
|---|
 | 346 | begin
 | 
|---|
 | 347 |   x := sCallV('TIU DELETE RECORD', [IEN, Reason]);
 | 
|---|
 | 348 |   DeleteSts.Success := Piece(x, U, 1) = '0';
 | 
|---|
 | 349 |   DeleteSts.Reason  := Piece(x, U, 2);
 | 
|---|
 | 350 | end;
 | 
|---|
 | 351 | 
 | 
|---|
 | 352 | procedure SignDCDocument(var SignSts: TActionRec; IEN: Integer; const ESCode: string);
 | 
|---|
 | 353 | { update signed status of a TIU document, return reason if signature is not accepted }
 | 
|---|
 | 354 | var
 | 
|---|
 | 355 |   x: string;
 | 
|---|
 | 356 | begin
 | 
|---|
 | 357 | (*  with RPCBrokerV do                           // temp - to insure sign doesn't go interactive
 | 
|---|
 | 358 |   begin
 | 
|---|
 | 359 |     ClearParameters := True;
 | 
|---|
 | 360 |     RemoteProcedure := 'TIU UPDATE RECORD';
 | 
|---|
 | 361 |     Param[0].PType := literal;
 | 
|---|
 | 362 |     Param[0].Value := IntToStr(IEN);            
 | 
|---|
 | 363 |     Param[1].PType := list;
 | 
|---|
 | 364 |     with Param[1] do Mult['.11']  := '0';       // **** block removed in v19.1 - {RV} ****
 | 
|---|
 | 365 |     CallBroker;
 | 
|---|
 | 366 |   end;                                         // temp - end*)
 | 
|---|
 | 367 |   x := sCallV('TIU SIGN RECORD', [IEN, ESCode]);
 | 
|---|
 | 368 |   SignSts.Success := Piece(x, U, 1) = '0';
 | 
|---|
 | 369 |   SignSts.Reason  := Piece(x, U, 2);
 | 
|---|
 | 370 | end;
 | 
|---|
 | 371 | 
 | 
|---|
 | 372 | procedure PutNewDCSumm(var CreatedDoc: TCreatedDoc; const DCSummRec: TDCSummRec);
 | 
|---|
 | 373 | { create a new discharge summary with the data in DCSummRec and return its internal entry number
 | 
|---|
 | 374 |   load broker directly since there isn't a good way to set up multiple subscript arrays }
 | 
|---|
 | 375 | (*var
 | 
|---|
 | 376 |   i: Integer;*)
 | 
|---|
 | 377 | var
 | 
|---|
 | 378 |   ErrMsg: string;
 | 
|---|
 | 379 | begin
 | 
|---|
 | 380 |   with RPCBrokerV do
 | 
|---|
 | 381 |   begin
 | 
|---|
 | 382 |     ClearParameters := True;
 | 
|---|
 | 383 |     RemoteProcedure := 'TIU CREATE RECORD';
 | 
|---|
 | 384 |     Param[0].PType := literal;
 | 
|---|
 | 385 |     Param[0].Value := Patient.DFN;  //*DFN*
 | 
|---|
 | 386 |     Param[1].PType := literal;
 | 
|---|
 | 387 |     Param[1].Value := IntToStr(DCSummRec.Title);
 | 
|---|
 | 388 |     Param[2].PType := literal;
 | 
|---|
 | 389 |     Param[2].Value := '';
 | 
|---|
 | 390 |     Param[3].PType := literal;
 | 
|---|
 | 391 |     Param[3].Value := '';
 | 
|---|
 | 392 |     Param[4].PType := literal;
 | 
|---|
 | 393 |     Param[4].Value := '';
 | 
|---|
 | 394 |     Param[5].PType := list;
 | 
|---|
 | 395 |     with Param[5] do
 | 
|---|
 | 396 |     begin
 | 
|---|
 | 397 |       Mult['.07']    := FloatToStr(DCSummRec.AdmitDateTime);
 | 
|---|
 | 398 |       Mult['.09']    := DCSummRec.Urgency;
 | 
|---|
 | 399 |       Mult['1202']   := IntToStr(DCSummRec.Dictator);
 | 
|---|
 | 400 |       Mult['1205']   := IntToStr(Encounter.Location);
 | 
|---|
 | 401 |       Mult['1301']   := FloatToStr(DCSummRec.DischargeDateTime);
 | 
|---|
 | 402 |       Mult['1307']   := FloatToStr(DCSummRec.DictDateTime);
 | 
|---|
 | 403 |       if DCSummRec.Cosigner > 0 then
 | 
|---|
 | 404 |         begin
 | 
|---|
 | 405 |           Mult['1208'] := IntToStr(DCSummRec.Cosigner);
 | 
|---|
 | 406 |           Mult['1506'] := '1';
 | 
|---|
 | 407 |         end
 | 
|---|
 | 408 |       else
 | 
|---|
 | 409 |         begin
 | 
|---|
 | 410 |           Mult['1208'] := '';
 | 
|---|
 | 411 |           Mult['1506'] := '0';
 | 
|---|
 | 412 |         end  ;
 | 
|---|
 | 413 |       Mult['1209']   := IntToStr(DCSummRec.Attending);
 | 
|---|
 | 414 |       Mult['1302']   := IntToStr(DCSummRec.Transcriptionist);
 | 
|---|
 | 415 |       if DCSummRec.IDParent > 0 then Mult['2101'] := IntToStr(DCSummRec.IDParent);
 | 
|---|
 | 416 | (*      if DCSummRec.Lines <> nil then
 | 
|---|
 | 417 |         for i := 0 to DCSummRec.Lines.Count - 1 do
 | 
|---|
 | 418 |           Mult['"TEXT",' + IntToStr(i+1) + ',0'] := FilteredString(DCSummRec.Lines[i]);*)
 | 
|---|
 | 419 |     end;
 | 
|---|
 | 420 |     Param[6].PType := literal;
 | 
|---|
 | 421 |     Param[6].Value := DCSummRec.VisitStr;
 | 
|---|
 | 422 |     Param[7].PType := literal;
 | 
|---|
 | 423 |     Param[7].Value := '1';  // suppress commit logic
 | 
|---|
 | 424 |     CallBroker;
 | 
|---|
 | 425 |     CreatedDoc.IEN := StrToIntDef(Piece(Results[0], U, 1), 0);
 | 
|---|
 | 426 |     CreatedDoc.ErrorText := Piece(Results[0], U, 2);
 | 
|---|
 | 427 |   end;
 | 
|---|
 | 428 |   if ( DCSummRec.Lines <> nil ) and ( CreatedDoc.IEN <> 0 ) then
 | 
|---|
 | 429 |   begin
 | 
|---|
 | 430 |     SetText(ErrMsg, DCSummRec.Lines, CreatedDoc.IEN, 1);
 | 
|---|
 | 431 |     if ErrMsg <> '' then
 | 
|---|
 | 432 |     begin
 | 
|---|
 | 433 |       CreatedDoc.IEN := 0;
 | 
|---|
 | 434 |       CreatedDoc.ErrorText := ErrMsg;
 | 
|---|
 | 435 |     end;
 | 
|---|
 | 436 |   end;
 | 
|---|
 | 437 | end;
 | 
|---|
 | 438 | 
 | 
|---|
 | 439 | procedure PutDCAddendum(var CreatedDoc: TCreatedDoc; const DCSummRec: TDCSummRec; AddendumTo: 
 | 
|---|
 | 440 | Integer);
 | 
|---|
 | 441 | { create a new addendum for note identified in AddendumTo, returns IEN of new document
 | 
|---|
 | 442 |   load broker directly since there isn't a good way to set up multiple subscript arrays }
 | 
|---|
 | 443 | (*var
 | 
|---|
 | 444 |   i: Integer;*)
 | 
|---|
 | 445 | var
 | 
|---|
 | 446 |   ErrMsg: string;
 | 
|---|
 | 447 | begin
 | 
|---|
 | 448 |   with RPCBrokerV do
 | 
|---|
 | 449 |   begin
 | 
|---|
 | 450 |     ClearParameters := True;
 | 
|---|
 | 451 |     RemoteProcedure := 'TIU CREATE ADDENDUM RECORD';
 | 
|---|
 | 452 |     Param[0].PType := literal;
 | 
|---|
 | 453 |     Param[0].Value := IntToStr(AddendumTo);
 | 
|---|
 | 454 |     Param[1].PType := list;
 | 
|---|
 | 455 |     with Param[1] do
 | 
|---|
 | 456 |     begin
 | 
|---|
 | 457 |       Mult['.09']    := DCSummRec.Urgency;
 | 
|---|
 | 458 |       Mult['1202']   := IntToStr(DCSummRec.Dictator);
 | 
|---|
 | 459 |       Mult['1301']   := FloatToStr(DCSummRec.DischargeDateTime);
 | 
|---|
 | 460 |       Mult['1307']   := FloatToStr(DCSummRec.DictDateTime);
 | 
|---|
 | 461 |       if DCSummRec.Cosigner > 0 then
 | 
|---|
 | 462 |         begin
 | 
|---|
 | 463 |           Mult['1208'] := IntToStr(DCSummRec.Cosigner);
 | 
|---|
 | 464 |           Mult['1506'] := '1';
 | 
|---|
 | 465 |         end
 | 
|---|
 | 466 |       else
 | 
|---|
 | 467 |         begin
 | 
|---|
 | 468 |           Mult['1208'] := '';
 | 
|---|
 | 469 |           Mult['1506'] := '0';
 | 
|---|
 | 470 |         end  ;
 | 
|---|
 | 471 | (*      if DCSummRec.Lines <> nil then
 | 
|---|
 | 472 |         for i := 0 to DCSummRec.Lines.Count - 1 do
 | 
|---|
 | 473 |           Mult['"TEXT",' + IntToStr(i+1) + ',0'] := FilteredString(DCSummRec.Lines[i]);*)
 | 
|---|
 | 474 |     end;
 | 
|---|
 | 475 |     Param[2].PType := literal;
 | 
|---|
 | 476 |     Param[2].Value := '1';  // suppress commit logic
 | 
|---|
 | 477 |     CallBroker;
 | 
|---|
 | 478 |     CreatedDoc.IEN := StrToIntDef(Piece(Results[0], U, 1), 0);
 | 
|---|
 | 479 |     CreatedDoc.ErrorText := Piece(Results[0], U, 2);
 | 
|---|
 | 480 |   end;
 | 
|---|
 | 481 |   if ( DCSummRec.Lines <> nil ) and ( CreatedDoc.IEN <> 0 ) then
 | 
|---|
 | 482 |   begin
 | 
|---|
 | 483 |     SetText(ErrMsg, DCSummRec.Lines, CreatedDoc.IEN, 1);
 | 
|---|
 | 484 |     if ErrMsg <> '' then
 | 
|---|
 | 485 |     begin
 | 
|---|
 | 486 |       CreatedDoc.IEN := 0;
 | 
|---|
 | 487 |       CreatedDoc.ErrorText := ErrMsg;
 | 
|---|
 | 488 |     end;
 | 
|---|
 | 489 |   end;
 | 
|---|
 | 490 | end;
 | 
|---|
 | 491 | 
 | 
|---|
 | 492 | procedure PutEditedDCSumm(var UpdatedDoc: TCreatedDoc; const DCSummRec: TDCSummRec; NoteIEN:
 | 
|---|
 | 493 | Integer);
 | 
|---|
 | 494 | { update the fields and content of the note identified in NoteIEN, returns 1 if successful
 | 
|---|
 | 495 |   load broker directly since there isn't a good way to set up mutilple subscript arrays }
 | 
|---|
 | 496 | (*var
 | 
|---|
 | 497 |   i: Integer;*)
 | 
|---|
 | 498 | var
 | 
|---|
 | 499 |   ErrMsg: string;
 | 
|---|
 | 500 | begin
 | 
|---|
 | 501 |   // First, file field data
 | 
|---|
 | 502 |   with RPCBrokerV do
 | 
|---|
 | 503 |   begin
 | 
|---|
 | 504 |     ClearParameters := True;
 | 
|---|
 | 505 |     RemoteProcedure := 'TIU UPDATE RECORD';
 | 
|---|
 | 506 |     Param[0].PType := literal;
 | 
|---|
 | 507 |     Param[0].Value := IntToStr(NoteIEN);
 | 
|---|
 | 508 |     Param[1].PType := list;
 | 
|---|
 | 509 |     with Param[1] do
 | 
|---|
 | 510 |     begin
 | 
|---|
 | 511 |       if DCSummRec.Addend = 0 then
 | 
|---|
 | 512 |         begin
 | 
|---|
 | 513 |           Mult['.01']  := IntToStr(DCSummRec.Title);
 | 
|---|
 | 514 |           //Mult['.11']  := BOOLCHAR[DCSummRec.NeedCPT];  //  **** removed in v19.1  {RV} ****
 | 
|---|
 | 515 |         end;
 | 
|---|
 | 516 |       if (DCSummRec.Status in [TIU_ST_UNREL(*, TIU_ST_UNVER*)]) then Mult['.05'] := IntToStr(DCSummRec.Status);
 | 
|---|
 | 517 |       Mult['1202']   := IntToStr(DCSummRec.Dictator);
 | 
|---|
 | 518 |       Mult['1209']   := IntToStr(DCSummRec.Attending);
 | 
|---|
 | 519 |       Mult['1301']   := FloatToStr(DCSummRec.DischargeDateTime);  
 | 
|---|
 | 520 |       if DCSummRec.Cosigner > 0 then
 | 
|---|
 | 521 |         begin
 | 
|---|
 | 522 |           Mult['1208'] := IntToStr(DCSummRec.Cosigner);
 | 
|---|
 | 523 |           Mult['1506'] := '1';
 | 
|---|
 | 524 |         end
 | 
|---|
 | 525 |       else
 | 
|---|
 | 526 |         begin
 | 
|---|
 | 527 |           Mult['1208'] := '';
 | 
|---|
 | 528 |           Mult['1506'] := '0';
 | 
|---|
 | 529 |         end  ;
 | 
|---|
 | 530 | (*      for i := 0 to DCSummRec.Lines.Count - 1 do
 | 
|---|
 | 531 |         Mult['"TEXT",' + IntToStr(i+1) + ',0'] := FilteredString(DCSummRec.Lines[i]);*)
 | 
|---|
 | 532 |     end;
 | 
|---|
 | 533 |     CallBroker;
 | 
|---|
 | 534 |     UpdatedDoc.IEN := StrToIntDef(Piece(Results[0], U, 1), 0);
 | 
|---|
 | 535 |     UpdatedDoc.ErrorText := Piece(Results[0], U, 2);
 | 
|---|
 | 536 |   end;
 | 
|---|
 | 537 | 
 | 
|---|
 | 538 |   if UpdatedDoc.IEN <= 0 then              //v22.12 - RV
 | 
|---|
 | 539 |   //if UpdatedDoc.ErrorText <> '' then    //v22.5 - RV
 | 
|---|
 | 540 |     begin
 | 
|---|
 | 541 |       UpdatedDoc.ErrorText := UpdatedDoc.ErrorText + #13#10 + #13#10 + 'Document #:  ' + IntToStr(NoteIEN);
 | 
|---|
 | 542 |       exit;  
 | 
|---|
 | 543 |     end;
 | 
|---|
 | 544 | 
 | 
|---|
 | 545 |     // next, if no error, file document body
 | 
|---|
 | 546 |   SetText(ErrMsg, DCSummRec.Lines, NoteIEN, 0);
 | 
|---|
 | 547 |   if ErrMsg <> '' then
 | 
|---|
 | 548 |   begin
 | 
|---|
 | 549 |     UpdatedDoc.IEN := 0;
 | 
|---|
 | 550 |     UpdatedDoc.ErrorText := ErrMsg;
 | 
|---|
 | 551 |   end;
 | 
|---|
 | 552 | end;
 | 
|---|
 | 553 | 
 | 
|---|
 | 554 | function GetAttending(const DFN: string): string;  //*DFN*
 | 
|---|
 | 555 | begin
 | 
|---|
 | 556 |   CallV('ORQPT ATTENDING/PRIMARY',[DFN]);
 | 
|---|
 | 557 |   Result := Piece(RPCBrokerV.Results[0],';',1);
 | 
|---|
 | 558 | end;
 | 
|---|
 | 559 | 
 | 
|---|
 | 560 | function GetDischargeDate(const DFN: string; AdmitDateTime: string): string;  //*DFN*
 | 
|---|
 | 561 | begin
 | 
|---|
 | 562 |   CallV('ORWPT DISCHARGE',[DFN, AdmitDateTime]);
 | 
|---|
 | 563 |   Result := RPCBrokerV.Results[0];
 | 
|---|
 | 564 | end;
 | 
|---|
 | 565 | 
 | 
|---|
 | 566 | function RequireRelease(ANote, AType: Integer): Boolean;
 | 
|---|
 | 567 | { returns true if a discharge summary must be released }
 | 
|---|
 | 568 | begin
 | 
|---|
 | 569 |   if ANote > 0 then
 | 
|---|
 | 570 |     Result := Piece(sCallV('TIU GET DOCUMENT PARAMETERS', [ANote]), U, 2) = '1'
 | 
|---|
 | 571 |   else
 | 
|---|
 | 572 |     Result := Piece(sCallV('TIU GET DOCUMENT PARAMETERS', [0, AType]), U, 2) = '1';
 | 
|---|
 | 573 | end;
 | 
|---|
 | 574 | 
 | 
|---|
 | 575 | function RequireMASVerification(ANote, AType: Integer): Boolean;
 | 
|---|
 | 576 | { returns true if a discharge summary must be verified }
 | 
|---|
 | 577 | var
 | 
|---|
 | 578 |   AValue: integer;
 | 
|---|
 | 579 | begin
 | 
|---|
 | 580 |   Result := False;
 | 
|---|
 | 581 |   if ANote > 0 then
 | 
|---|
 | 582 |     AValue := StrToIntDef(Piece(sCallV('TIU GET DOCUMENT PARAMETERS', [ANote]), U, 3), 0)
 | 
|---|
 | 583 |   else
 | 
|---|
 | 584 |     AValue := StrToIntDef(Piece(sCallV('TIU GET DOCUMENT PARAMETERS', [0, AType]), U, 3), 0);
 | 
|---|
 | 585 |   case AValue of
 | 
|---|
 | 586 |     0:  Result := False;   //  NO
 | 
|---|
 | 587 |     1:  Result := True;    //  ALWAYS
 | 
|---|
 | 588 |     2:  Result := False;   //  UPLOAD ONLY
 | 
|---|
 | 589 |     3:  Result := True;    //  DIRECT ENTRY ONLY
 | 
|---|
 | 590 |   end;
 | 
|---|
 | 591 | end;
 | 
|---|
 | 592 | 
 | 
|---|
 | 593 | function AllowMultipleSummsPerAdmission(ANote, AType: Integer): Boolean;
 | 
|---|
 | 594 | { returns true if a discharge summary must be released }
 | 
|---|
 | 595 | begin
 | 
|---|
 | 596 |   if ANote > 0 then
 | 
|---|
 | 597 |     Result := Piece(sCallV('TIU GET DOCUMENT PARAMETERS', [ANote]), U, 10) = '1'
 | 
|---|
 | 598 |   else
 | 
|---|
 | 599 |     Result := Piece(sCallV('TIU GET DOCUMENT PARAMETERS', [0, AType]), U, 10) = '1';
 | 
|---|
 | 600 | end;
 | 
|---|
 | 601 | 
 | 
|---|
 | 602 | procedure ChangeAttending(IEN: integer; AnAttending: int64);
 | 
|---|
 | 603 | var
 | 
|---|
 | 604 |   AttendingIsNotCurrentUser: boolean;
 | 
|---|
 | 605 | begin
 | 
|---|
 | 606 |   AttendingIsNotCurrentUser := (AnAttending <> User.DUZ);
 | 
|---|
 | 607 |   with RPCBrokerV do
 | 
|---|
 | 608 |   begin
 | 
|---|
 | 609 |     ClearParameters := True;
 | 
|---|
 | 610 |     RemoteProcedure := 'TIU UPDATE RECORD';
 | 
|---|
 | 611 |     Param[0].PType := literal;
 | 
|---|
 | 612 |     Param[0].Value := IntToStr(IEN);
 | 
|---|
 | 613 |     Param[1].PType := list;
 | 
|---|
 | 614 |     with Param[1] do
 | 
|---|
 | 615 |       begin
 | 
|---|
 | 616 |         Mult['1209']   := IntToStr(AnAttending);
 | 
|---|
 | 617 |         if AttendingIsNotCurrentUser then
 | 
|---|
 | 618 |         begin
 | 
|---|
 | 619 |           Mult['1208'] := IntToStr(AnAttending);
 | 
|---|
 | 620 |           Mult['1506'] := '1';
 | 
|---|
 | 621 |         end
 | 
|---|
 | 622 |       else
 | 
|---|
 | 623 |         begin
 | 
|---|
 | 624 |           Mult['1208'] := '';
 | 
|---|
 | 625 |           Mult['1506'] := '0';
 | 
|---|
 | 626 |         end  ;
 | 
|---|
 | 627 |       end;
 | 
|---|
 | 628 |     CallBroker;
 | 
|---|
 | 629 |   end;
 | 
|---|
 | 630 | end;
 | 
|---|
 | 631 | 
 | 
|---|
 | 632 | function GetCurrentDCSummContext: TTIUContext;
 | 
|---|
 | 633 | var
 | 
|---|
 | 634 |   x: string;
 | 
|---|
 | 635 |   AContext: TTIUContext;
 | 
|---|
 | 636 | begin
 | 
|---|
 | 637 |   x := sCallV('ORWTIU GET DCSUMM CONTEXT', [User.DUZ]) ;
 | 
|---|
 | 638 |   with AContext do
 | 
|---|
 | 639 |     begin
 | 
|---|
 | 640 |       Changed       := True;
 | 
|---|
 | 641 |       BeginDate     := Piece(x, ';', 1);
 | 
|---|
 | 642 |       EndDate       := Piece(x, ';', 2);
 | 
|---|
 | 643 |       Status        := Piece(x, ';', 3);
 | 
|---|
 | 644 |       if (StrToIntDef(Status, 0) < 1) or (StrToIntDef(Status, 0) > 5) then Status := '1';
 | 
|---|
 | 645 |       Author        := StrToInt64Def(Piece(x, ';', 4), 0);
 | 
|---|
 | 646 |       MaxDocs       := StrToIntDef(Piece(x, ';', 5), 0);
 | 
|---|
 | 647 |       ShowSubject   := StrToIntDef(Piece(x, ';', 6), 0) > 0;   //TIU PREFERENCE??
 | 
|---|
 | 648 |       SortBy        := Piece(x, ';', 7);                       //TIU PREFERENCE??
 | 
|---|
 | 649 |       ListAscending := StrToIntDef(Piece(x, ';', 8), 0) > 0;
 | 
|---|
 | 650 |       TreeAscending := StrToIntDef(Piece(x, ';', 9), 0) > 0;   //TIU PREFERENCE??
 | 
|---|
 | 651 |       GroupBy       := Piece(x, ';', 10);
 | 
|---|
 | 652 |       SearchField   := Piece(x, ';', 11);
 | 
|---|
 | 653 |       KeyWord       := Piece(x, ';', 12);
 | 
|---|
 | 654 |       Filtered      := (Keyword <> '');
 | 
|---|
 | 655 |     end;
 | 
|---|
 | 656 |   Result := AContext;
 | 
|---|
 | 657 | end;
 | 
|---|
 | 658 | 
 | 
|---|
 | 659 | procedure SaveCurrentDCSummContext(AContext: TTIUContext) ;
 | 
|---|
 | 660 | var
 | 
|---|
 | 661 |   x: string;
 | 
|---|
 | 662 | begin
 | 
|---|
 | 663 |   with AContext do
 | 
|---|
 | 664 |     begin
 | 
|---|
 | 665 |       SetPiece(x, ';', 1, BeginDate);
 | 
|---|
 | 666 |       SetPiece(x, ';', 2, EndDate);
 | 
|---|
 | 667 |       SetPiece(x, ';', 3, Status);
 | 
|---|
 | 668 |       if Author > 0 then
 | 
|---|
 | 669 |         SetPiece(x, ';', 4, IntToStr(Author))
 | 
|---|
 | 670 |       else
 | 
|---|
 | 671 |         SetPiece(x, ';', 4, '');
 | 
|---|
 | 672 |       SetPiece(x, ';', 5, IntToStr(MaxDocs));
 | 
|---|
 | 673 |       SetPiece(x, ';', 6, BOOLCHAR[ShowSubject]);       //TIU PREFERENCE??
 | 
|---|
 | 674 |       SetPiece(x, ';', 7, SortBy);                      //TIU PREFERENCE??
 | 
|---|
 | 675 |       SetPiece(x, ';', 8, BOOLCHAR[ListAscending]);
 | 
|---|
 | 676 |       SetPiece(x, ';', 9, BOOLCHAR[TreeAscending]);     //TIU PREFERENCE??
 | 
|---|
 | 677 |       SetPiece(x, ';', 10, GroupBy);
 | 
|---|
 | 678 |       SetPiece(x, ';', 11, SearchField);
 | 
|---|
 | 679 |       SetPiece(x, ';', 12, KeyWord);
 | 
|---|
 | 680 |     end;
 | 
|---|
 | 681 |   CallV('ORWTIU SAVE DCSUMM CONTEXT', [x]);
 | 
|---|
 | 682 | end;
 | 
|---|
 | 683 | 
 | 
|---|
 | 684 | initialization
 | 
|---|
 | 685 |   // nothing for now
 | 
|---|
 | 686 | 
 | 
|---|
 | 687 | finalization
 | 
|---|
 | 688 |   if uDCSummTitles <> nil then uDCSummTitles.Free;
 | 
|---|
 | 689 |   if uDCSummPrefs <> nil then uDCSummPrefs.Free;
 | 
|---|
 | 690 | 
 | 
|---|
 | 691 | end.
 | 
|---|