unit rOptions; interface uses SysUtils, Classes, ORNet, ORFn, uCore, rCore, rTIU, rConsults; function rpcGetNotifications: TStrings; function rpcGetOrderChecks: TStrings; function rpcGetNotificationDefaults: String; function rpcGetSurrogateInfo: String; procedure rpcCheckSurrogate(surrogate: Int64; var ok: boolean; var msg: string); //procedure rpcSetSurrogateInfo(aString: String); procedure rpcSetSurrogateInfo(aString: String; var ok: boolean; var msg: string); procedure rpcClearNotifications; procedure rpcSetNotifications(aList: TStringList); procedure rpcSetOrderChecks(aList: TStringList); procedure rpcSetOtherStuff(aString: String); function rpcGetOtherTabs: TStrings; function rpcGetOther: String; procedure rpcSetOther(info: String); function rpcGetCosigners(const StartFrom: string; Direction: Integer): TStrings; function rpcGetDefaultCosigner: String; procedure rpcSetDefaultCosigner(value: Int64); function rpcGetSubject: boolean; procedure rpcSetSubject(value: boolean); function rpcGetClasses: TStrings; function rpcGetTitlesForClass(value: integer; const StartFrom: string; Direction: Integer): TStrings; function rpcGetTitlesForUser(value: integer): TStrings; function rpcGetTitleDefault(value: integer): integer; procedure rpcSaveDocumentDefaults(classvalue, titledefault: integer; aList: TStrings); procedure rpcGetLabDays(var InpatientDays: integer; var OutpatientDays: integer); procedure rpcGetLabUserDays(var InpatientDays: integer; var OutpatientDays: integer); procedure rpcGetApptDays(var StartDays: integer; var StopDays: integer); procedure rpcGetApptUserDays(var StartDays: integer; var StopDays: integer); procedure rpcSetDays(InpatientDays, OutpatientDays, StartDays, StopDays: integer); procedure rpcGetImagingDays(var MaxNum: integer; var StartDays: integer; var StopDays: integer); procedure rpcGetImagingUserDays(var MaxNum: integer; var StartDays: integer; var StopDays: integer); procedure rpcSetImagingDays(MaxNum, StartDays, StopDays: integer); procedure rpcGetReminders(Dest: TStrings); procedure rpcSetReminders(aList: TStringList); function rpcGetListOrder: Char; procedure rpcGetClinicUserDays(var StartDays: integer; var StopDays: integer); procedure rpcGetClinicDefaults(var mon, tues, wed, thurs, fri, sat, sun: integer); procedure rpcGetListSourceDefaults(var provider, treating, list, ward: integer); procedure rpcSetClinicDefaults(StartDays, StopDays, mon, tues, wed, thurs, fri, sat, sun: integer); procedure rpcSetPtListDefaults(PLSource, PLSort: Char; prov, spec, team, ward: integer); procedure rpcGetPersonalLists(Dest: TStrings); procedure rpcGetAllTeams(Dest: TStrings); procedure rpcGetTeams(Dest: TStrings); procedure rpcGetATeams(Dest: TStrings); procedure rpcDeleteList(aString: String); function rpcNewList(aString: String; Visibility: integer): String; procedure rpcSaveListChanges(aList: TStrings; aListIEN, aListVisibility: integer); procedure rpcListUsersByTeam(Dest: TStrings; teamid: integer); procedure rpcRemoveList(aListIEN: integer); procedure rpcAddList(aListIEN: integer); function rpcGetCombo: TStrings; procedure rpcSetCombo(aList: TStrings); procedure rpcGetDefaultReportsSetting(var int1: integer; var int2: integer; var int3: integer); procedure rpcDeleteUserLevelReportsSetting; procedure rpcActiveDefaultSetting; procedure rpcSetDefaultReportsSetting(aString: string); procedure rpcSetIndividualReportSetting(aString1:string; aString2:string); procedure rpcRetrieveDefaultSetting(var int1: integer; var int2: integer; var int3: integer; var msg: string); procedure rpcGetRangeForMeds(var startDt, stopDt: TFMDateTime); procedure rpcPutRangeForMeds(TheVal: string); procedure rpcGetRangeForEncs(var StartDays, StopDays: integer; DefaultParams: Boolean); procedure rpcPutRangeForEncs(StartDays, StopDays: string); procedure rpcGetEncFutureDays(var FutureDays: string); implementation //.............................................................................. function rpcGetNotifications: TStrings; begin CallV('ORWTPP GETNOT', [nil]); MixedCaseList(RPCBrokerV.Results); result :=RPCBrokerV.Results; end; function rpcGetOrderChecks: TStrings; begin CallV('ORWTPP GETOC', [nil]); MixedCaseList(RPCBrokerV.Results); result :=RPCBrokerV.Results; end; function rpcGetNotificationDefaults: String; begin result := sCallV('ORWTPP GETNOTO', [nil]); end; function rpcGetSurrogateInfo: String; begin result := MixedCase(sCallV('ORWTPP GETSURR', [nil])); end; procedure rpcCheckSurrogate(surrogate: Int64; var ok: boolean; var msg: string); var value: string; begin value := sCallV('ORWTPP CHKSURR', [surrogate]); ok := Piece(value, '^', 1) = '1'; msg := Piece(value, '^', 2); end; (*procedure rpcSetSurrogateInfo(aString: String); begin CallV('ORWTPP SAVESURR', [aString]); end;*) procedure rpcSetSurrogateInfo(aString: String; var ok: boolean; var msg: string); var value: string; begin value := sCallV('ORWTPP SAVESURR', [aString]); ok := Piece(value, '^', 1) = '1'; msg := Piece(value, '^', 2); end; procedure rpcClearNotifications; begin CallV('ORWTPP CLEARNOT', [nil]); end; procedure rpcSetNotifications(aList: TStringList); begin CallV('ORWTPP SAVENOT', [aList]); end; procedure rpcSetOrderChecks(aList: TStringList); begin CallV('ORWTPP SAVEOC', [aList]); end; procedure rpcSetOtherStuff(aString: String); begin CallV('ORWTPP SAVENOTO', [aString]); end; //.............................................................................. function rpcGetOtherTabs: TStrings; begin CallV('ORWTPO GETTABS', [nil]); MixedCaseList(RPCBrokerV.Results); result :=RPCBrokerV.Results; end; function rpcGetOther: String; begin result := sCallV('ORWTPP GETOTHER', [nil]); end; procedure rpcSetOther(info: String); begin CallV('ORWTPP SETOTHER', [info]); end; function rpcGetCosigners(const StartFrom: string; Direction: Integer): TStrings; begin CallV('ORWTPP GETCOS', [StartFrom, Direction]); MixedCaseList(RPCBrokerV.Results); Result := RPCBrokerV.Results; end; function rpcGetDefaultCosigner: String; begin result := sCallV('ORWTPP GETDCOS', [nil]); end; procedure rpcSetDefaultCosigner(value: Int64); begin CallV('ORWTPP SETDCOS', [value]) end; function rpcGetSubject: boolean; var value: string; begin value := sCallV('ORWTPP GETSUB', [nil]); if value = '1' then result := true else result := false; end; procedure rpcSetSubject(value: boolean); begin CallV('ORWTPP SETSUB', [value]) end; function rpcGetClasses: TStrings; begin CallV('ORWTPN GETCLASS', [nil]); MixedCaseList(RPCBrokerV.Results); result :=RPCBrokerV.Results; end; function rpcGetTitlesForClass(value: integer; const StartFrom: string; Direction: Integer): TStrings; begin (* case value of CLS_PROGRESS_NOTES: CallV('TIU LONG LIST OF TITLES', [value, StartFrom, Direction]); else CallV('ORWTPN GETTC', [value, StartFrom, Direction]); //****** original end;*) CallV('TIU LONG LIST OF TITLES', [value, StartFrom, Direction]); //MixedCaseList(RPCBrokerV.Results); result :=RPCBrokerV.Results; end; function rpcGetTitlesForUser(value: integer): TStrings; begin CallV('ORWTPP GETTU', [value]); //MixedCaseList(RPCBrokerV.Results); result :=RPCBrokerV.Results; end; function rpcGetTitleDefault(value: integer): integer; begin result := strtointdef(sCallV('ORWTPP GETTD', [value]), -1); end; procedure rpcSaveDocumentDefaults(classvalue, titledefault: integer; aList: TStrings); begin CallV('ORWTPP SAVET', [classvalue, titledefault, aList]); end; //.............................................................................. procedure rpcGetLabDays(var InpatientDays: integer; var OutpatientDays:integer); var values: string; begin values := sCallV('ORWTPO CSLABD', [nil]); InpatientDays := strtointdef(Piece(values, '^', 1), 0); OutpatientDays := strtointdef(Piece(values, '^', 2), 0); end; procedure rpcGetLabUserDays(var InpatientDays: integer; var OutpatientDays: integer); var values: string; begin values := sCallV('ORWTPP CSLAB', [nil]); InpatientDays := -strtointdef(Piece(values, '^', 1), 0); OutpatientDays := -strtointdef(Piece(values, '^', 2), 0); end; procedure rpcGetApptDays(var StartDays: integer; var StopDays: integer); var values, start, stop: string; begin values := sCallV('ORWTPD1 GETCSDEF', [nil]); start := Piece(values, '^', 1); stop := Piece(values, '^', 2); StartDays := strtointdef(Piece(start, 'T', 2), 0); StopDays := strtointdef(Piece(stop, 'T', 2), 0); end; procedure rpcGetApptUserDays(var StartDays: integer; var StopDays: integer); var values, start, stop: string; begin values := sCallV('ORWTPD1 GETCSRNG', [nil]); start := Piece(values, '^', 1); stop := Piece(values, '^', 2); StartDays := strtointdef(Piece(start, 'T', 2), 0); StopDays := strtointdef(Piece(stop, 'T', 2), 0); end; procedure rpcSetDays(InpatientDays, OutpatientDays, StartDays, StopDays: integer); var values: string; begin values := ''; values := values + inttostr(InpatientDays) + '^'; values := values + inttostr(OutpatientDays) + '^'; values := values + inttostr(StartDays) + '^'; values := values + inttostr(StopDays) + '^'; CallV('ORWTPD1 PUTCSRNG', [values]); end; procedure rpcGetImagingDays(var MaxNum: integer; var StartDays: integer; var StopDays: integer); var values, max, start, stop: string; begin values := sCallV('ORWTPO GETIMGD', [nil]); //values := 'T-120;T;;;100'; start := Piece(values, ';', 1); stop := Piece(values, ';', 2); max := Piece(values, ';', 5); StartDays := strtointdef(Piece(start, 'T', 2), 0); StopDays := strtointdef(Piece(stop, 'T', 2), 0); MaxNum := strtointdef(max, 0); end; procedure rpcGetImagingUserDays(var MaxNum: integer; var StartDays: integer; var StopDays: integer); var values, max, start, stop: string; begin values := sCallV('ORWTPP GETIMG', [nil]); //values := 'T-180;T;;;15'; start := Piece(values, ';', 1); stop := Piece(values, ';', 2); max := Piece(values, ';', 5); StartDays := strtointdef(Piece(start, 'T', 2), 0); StopDays := strtointdef(Piece(stop, 'T', 2), 0); MaxNum := strtointdef(max, 0); end; procedure rpcSetImagingDays(MaxNum, StartDays, StopDays: integer); begin CallV('ORWTPP SETIMG', [MaxNum, StartDays, StopDays]); end; //.............................................................................. procedure rpcGetReminders(Dest: TStrings); begin CallV('ORWTPP GETREM', [nil]); MixedCaseList(RPCBrokerV.Results); FastAssign(RPCBrokerV.Results, Dest); end; procedure rpcSetReminders(aList: TStringList); begin CallV('ORWTPP SETREM', [aList]); end; //.............................................................................. function rpcGetListOrder: Char; begin result := CharAt(sCallV('ORWTPP SORTDEF', [nil]), 1); end; procedure rpcGetClinicUserDays(var StartDays: integer; var StopDays: integer); var values, start, stop: string; begin values := sCallV('ORWTPP CLRANGE', [nil]); start := Piece(values, '^', 1); stop := Piece(values, '^', 2); StartDays := strtointdef(Piece(start, 'T', 2), 0); StopDays := strtointdef(Piece(stop, 'T', 2), 0); end; procedure rpcGetClinicDefaults(var mon, tues, wed, thurs, fri, sat, sun: integer); var values: string; begin values := sCallV('ORWTPP CLDAYS', [nil]); mon := strtointdef(Piece(values, '^', 1), 0); tues := strtointdef(Piece(values, '^', 2), 0); wed := strtointdef(Piece(values, '^', 3), 0); thurs := strtointdef(Piece(values, '^', 4), 0); fri := strtointdef(Piece(values, '^', 5), 0); sat := strtointdef(Piece(values, '^', 6), 0); sun := strtointdef(Piece(values, '^', 7), 0); end; procedure rpcGetListSourceDefaults(var provider, treating, list, ward: integer); var values: string; begin values := sCallV('ORWTPP LSDEF', [nil]); provider := strtointdef(Piece(values, '^', 1), 0); treating := strtointdef(Piece(values, '^', 2), 0); list := strtointdef(Piece(values, '^', 3), 0); ward := strtointdef(Piece(values, '^', 4), 0); end; procedure rpcSetClinicDefaults(StartDays, StopDays, mon, tues, wed, thurs, fri, sat, sun: integer); var values: string; begin values := ''; values := values + inttostr(StartDays) + '^'; values := values + inttostr(StopDays) + '^'; values := values + inttostr(mon) + '^'; values := values + inttostr(tues) + '^'; values := values + inttostr(wed) + '^'; values := values + inttostr(thurs) + '^'; values := values + inttostr(fri) + '^'; values := values + inttostr(sat) + '^'; values := values + inttostr(sun) + '^'; CallV('ORWTPP SAVECD', [values]); end; procedure rpcSetPtListDefaults(PLSource, PLSort: Char; prov, spec, team, ward: integer); var values: string; begin values := ''; values := values + PLSource + '^'; values := values + PLSort + '^'; values := values + inttostr(prov) + '^'; values := values + inttostr(spec) + '^'; values := values + inttostr(team) + '^'; values := values + inttostr(ward) + '^'; CallV('ORWTPP SAVEPLD', [values]); end; //.............................................................................. procedure rpcGetPersonalLists(Dest: TStrings); begin CallV('ORWTPP PLISTS', [nil]); MixedCaseList(RPCBrokerV.Results); FastAssign(RPCBrokerV.Results, Dest); end; procedure rpcGetAllTeams(Dest: TStrings); begin CallV('ORWTPP PLTEAMS', [nil]); MixedCaseList(RPCBrokerV.Results); FastAssign(RPCBrokerV.Results, Dest); end; procedure rpcGetTeams(Dest: TStrings); begin CallV('ORWTPP TEAMS', [nil]); MixedCaseList(RPCBrokerV.Results); FastAssign(RPCBrokerV.Results, Dest); end; procedure rpcGetATeams(Dest: TStrings); begin CallV('ORWTPT ATEAMS', [nil]); MixedCaseList(RPCBrokerV.Results); FastAssign(RPCBrokerV.Results, Dest); end; procedure rpcDeleteList(aString: String); begin CallV('ORWTPP DELLIST', [aString]); end; function rpcNewList(aString: String; Visibility: integer): String; begin result := sCallV('ORWTPP NEWLIST', [aString, Visibility]); result := MixedCase(result); end; procedure rpcSaveListChanges(aList: TStrings; aListIEN, aListVisibility: integer); begin CallV('ORWTPP SAVELIST', [aList, aListIEN, aListVisibility]); end; procedure rpcListUsersByTeam(Dest: TStrings; teamid: integer); begin CallV('ORWTPT GETTEAM', [teamid]); MixedCaseList(RPCBrokerV.Results); FastAssign(RPCBrokerV.Results, Dest); end; procedure rpcRemoveList(aListIEN: integer); begin CallV('ORWTPP REMLIST', [aListIEN]); end; procedure rpcAddList(aListIEN: integer); begin CallV('ORWTPP ADDLIST', [aListIEN]); end; //.............................................................................. function rpcGetCombo: TStrings; begin CallV('ORWTPP GETCOMBO', [nil]); MixedCaseList(RPCBrokerV.Results); result := RPCBrokerV.Results; end; procedure rpcSetCombo(aList: TStrings); begin CallV('ORWTPP SETCOMBO', [aList]); end; //.............................................................................. procedure rpcGetDefaultReportsSetting(var int1: integer; var int2: integer; var int3: integer); var values: string; startoffset,stopoffset: string; begin values := sCallV('ORWTPD GETDFLT', [nil]); if length(values)=0 then exit; startoffset := Piece(values,';',1); delete(startoffset,1,1); stopoffset := Piece(values,';',2); delete(stopoffset,1,1); int1 := strtointdef(startoffset,0); int2 := strtointdef(stopoffset,0); int3:= strtointdef(Piece(values, ';', 3), 100); // max occurences end; procedure rpcDeleteUserLevelReportsSetting; begin sCallV('ORWTPD DELDFLT',[nil]); end; procedure rpcActiveDefaultSetting; begin sCallV('ORWTPD ACTDF',[nil]); end; procedure rpcSetDefaultReportsSetting(aString: string); begin sCallV('ORWTPD SUDF',[aString]); end; procedure rpcSetIndividualReportSetting(aString1:string; aString2:string); begin sCallV('ORWTPD SUINDV',[aString1,aString2]); end; procedure rpcRetrieveDefaultSetting(var int1: integer; var int2: integer; var int3: integer; var msg: string); var values: string; startoffset,stopoffset: string; begin values := sCallV('ORWTPD RSDFLT',[nil]); if length(values)=0 then begin msg := 'NODEFAULT'; exit; end; startoffset := Piece(values,';',1); delete(startoffset,1,1); stopoffset := Piece(values,';',2); delete(stopoffset,1,1); int1 := strtointdef(startoffset,0); int2 := strtointdef(stopoffset,0); int3:= strtointdef(Piece(values, ';', 3), 100); // max occurences end; procedure rpcGetRangeForMeds(var startDt, stopDt: TFMDateTime); var rst,sDt,eDt: string; td: TFMDateTime; begin rst := SCallV('ORWTPD GETOCM',[nil]); sDt := Piece(rst,';',1); if lowerCase(sDt) <> 't' then Delete(sDt,1,1); eDt := Piece(rst,';',2); if lowerCase(eDt) <> 't' then Delete(eDt,1,1); td := FMToday; if Length(sDt)>0 then startDt := FMDateTimeOffsetBy(td, StrToIntDef(sDt,0)); if Length(eDt)>0 then stopDt := FMDateTimeOffsetBy(td, StrToIntDef(eDt,0)); end; procedure rpcPutRangeForMeds(TheVal: string); begin SCallV('ORWTPD PUTOCM',[TheVal]); end; procedure rpcGetRangeForEncs(var StartDays, StopDays: integer; DefaultParams: Boolean); var Start, Stop, Values: string; begin if DefaultParams then Values := SCallV('ORWTPD1 GETEFDAT',[nil]) else Values := SCallV('ORWTPD1 GETEDATS',[nil]); Start := Piece(Values, '^', 1); Stop := Piece(Values, '^', 2); StartDays := StrToIntDef(Start, 0); StopDays := StrToIntDef(Stop, 0); end; procedure rpcPutRangeForEncs(StartDays, StopDays: string); var values: string; begin values := ''; values := values + StartDays + '^'; values := values + StopDays; CallV('ORWTPD1 PUTEDATS',[values]); end; procedure rpcGetEncFutureDays(var FutureDays: string); begin FutureDays := SCallV('ORWTPD1 GETEAFL',[nil]); end; end.