|
@@ -0,0 +1,305 @@
|
|
|
+import 'package:fis_common/json_convert.dart';
|
|
|
+
|
|
|
+import '../client_base.dart';
|
|
|
+import 'platform.m.dart';
|
|
|
+
|
|
|
+/// 平台服务
|
|
|
+class PlatformService extends JsonRpcClientBase {
|
|
|
+ PlatformService(
|
|
|
+ String host, {
|
|
|
+ String serviceName = "IPlatformService",
|
|
|
+ Map<String, String>? headers,
|
|
|
+ int? timeout,
|
|
|
+ }) : super(
|
|
|
+ host,
|
|
|
+ serviceName,
|
|
|
+ headers: headers,
|
|
|
+ timeout: timeout,
|
|
|
+ ) {
|
|
|
+ /// 注册响应实体反序列化处理器
|
|
|
+ FJsonConvert.setDecoder((map) => LoadVidResult.fromJson(map));
|
|
|
+ FJsonConvert.setDecoder((map) => GetVidFrameResult.fromJson(map));
|
|
|
+ }
|
|
|
+
|
|
|
+ /// 加载主题
|
|
|
+ Future<bool> loadTheme(String name) async {
|
|
|
+ var rpcRst = await call("LoadTheme", name);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// 保存配置
|
|
|
+ ///
|
|
|
+ /// [jsonText] 配置json文本
|
|
|
+ Future<bool> saveConfig(String jsonText) async {
|
|
|
+ var rpcRst = await call("SaveConfig", jsonText);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// 获取配置
|
|
|
+ Future<String?> getConfig() async {
|
|
|
+ var rpcRst = await call("GetConfig");
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// 保存文本文件
|
|
|
+ ///
|
|
|
+ /// [name] 文件名
|
|
|
+ ///
|
|
|
+ /// [text] 文本
|
|
|
+ Future<bool> saveText(String name, String text) async {
|
|
|
+ var rpcRst = await call("SaveText", [name, text]);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// 获取文件文本
|
|
|
+ ///
|
|
|
+ /// [name] 文件名
|
|
|
+ Future<String?> getText(String name) async {
|
|
|
+ var rpcRst = await call("GetText", name);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// 加载Vid文件
|
|
|
+ ///
|
|
|
+ /// [url] Vid文件链接
|
|
|
+ Future<LoadVidResult> loadVid(String url) async {
|
|
|
+ var rpcRst = await call("LoadVid", url);
|
|
|
+ var result = LoadVidResult.fromJson(rpcRst as Map<String, dynamic>);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// 获取Vid单针帧图
|
|
|
+ Future<GetVidFrameResult> getVidFrame(GetVidFrameRequest request) async {
|
|
|
+ var rpcRst = await call("GetVidFrame", request);
|
|
|
+ var result = GetVidFrameResult.fromJson(rpcRst as Map<String, dynamic>);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// 释放Vid缓存资源
|
|
|
+ void releaseVid() => notify("ReleaseVid");
|
|
|
+
|
|
|
+ /// 获取单帧Vid文件图像
|
|
|
+ Future<GetVidFrameResult> getSingleImage(String url) async {
|
|
|
+ var rpcRst = await call("GetSingleImage", url);
|
|
|
+ var result = GetVidFrameResult.fromJson(rpcRst as Map<String, dynamic>);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// 获取vid文件(base64)
|
|
|
+ Future<String?> getVidFile(String url) async {
|
|
|
+ var rpcRst = await call("GetVidFile", [url]);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// 导出文件
|
|
|
+ Future<bool> setBytesToExport(String data, String fileName) async {
|
|
|
+ var rpcRst = await call("SetBytesToExport", [data, fileName]);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///缓存文件
|
|
|
+ Future<bool> setBinaryFileCache(String data, String fileName) async {
|
|
|
+ var rpcRst = await call("SetBinaryFileCache", [data, fileName]);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///读取缓存文件
|
|
|
+ Future<String?> getBinaryFileCache(String fileName) async {
|
|
|
+ var rpcRst = await call("GetBinaryFileCache", [fileName]);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///导出病例zip文件
|
|
|
+ Future<bool> exportPatientZipFile(String data, String fileName) async {
|
|
|
+ var rpcRst = await call("ExportPatientZipFile", [data, fileName]);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///撤销病例导出
|
|
|
+ Future<bool> abortExportOperation() async {
|
|
|
+ var rpcRst = await call("AbortExportOperation", []);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///打开图像测量页(独立窗口)
|
|
|
+ Future<bool?> openImageMeasureAsync(String token, String patientCode,
|
|
|
+ String remedicalCode, String recordCode) async {
|
|
|
+ var rpcRst = await call(
|
|
|
+ "OpenImageMeasure", [token, patientCode, remedicalCode, recordCode]);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///打开报告预览页(独立窗口)
|
|
|
+ Future<bool?> openReportPreviewAsync(String token, String reportCode,
|
|
|
+ String recordCode, String isFormEditor) async {
|
|
|
+ var rpcRst = await call(
|
|
|
+ "OpenReportPreview", [token, reportCode, recordCode, isFormEditor]);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///打开图像测量页(独立窗口)
|
|
|
+ Future<bool?> openReportEditAsync(String token, String patientCode,
|
|
|
+ String reportCode, String recordCode, String referralRecordCode) async {
|
|
|
+ var rpcRst = await call("OpenReportEdit",
|
|
|
+ [token, patientCode, reportCode, recordCode, referralRecordCode]);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///打开报告设计器页面(独立窗口)
|
|
|
+ Future<bool?> openReportDesignerAsync(String templateId, String name,
|
|
|
+ String type, String token, String json) async {
|
|
|
+ var rpcRst =
|
|
|
+ await call("OpenReportDesigner", [templateId, name, type, token, json]);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///获取屏幕个数
|
|
|
+ Future<int> getWindowsNum() async {
|
|
|
+ var rpcRst = await call("GetWindowsNum");
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///关闭副窗口
|
|
|
+ Future<void> closeSlaveWindow() async {
|
|
|
+ var rpcRst = await call("CloseSlaveWindow");
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///开启拖拽窗口
|
|
|
+ Future<void> beginWindowDrag(String windowName) async {
|
|
|
+ var rpcRst = await call("BeginWindowDrag", [windowName]);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///关闭拖拽窗口
|
|
|
+ Future<void> endWindowDrag(String windowName) async {
|
|
|
+ var rpcRst = await call("EndWindowDrag", [windowName]);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///最小化窗口
|
|
|
+ Future<void> minimizeWindow(String windowName) async {
|
|
|
+ var rpcRst = await call("MinimizeWindow", [windowName]);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///最大化窗口
|
|
|
+ Future<void> maximizeWindow(String windowName) async {
|
|
|
+ var rpcRst = await call("MaximizeWindow", [windowName]);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///重置
|
|
|
+ Future<void> restoreWindow(String windowName) async {
|
|
|
+ var rpcRst = await call("RestoreWindow", [windowName]);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///获取Window状态
|
|
|
+ Future<int> getWindowState(String windowName) async {
|
|
|
+ var rpcRst = await call("GetWindowStateAsync", [windowName]);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///关闭窗口
|
|
|
+ Future<void> closeWindow(String windowName) async {
|
|
|
+ var rpcRst = await call("CloseWindow", [windowName]);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///设置语言Code
|
|
|
+ Future<void> setLanguageCodeAsync(String code) async {
|
|
|
+ var rpcRst = await call("SetLanguageCode", [code]);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取语言Code
|
|
|
+ Future<String> getLanguageCodeAsync() async {
|
|
|
+ var rpcRst = await call("GetLanguageCode");
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///设置当前登录信息
|
|
|
+ Future<void> setLoginUserInfoAsync(String userInfo) async {
|
|
|
+ var rpcRst = await call("SetUserLoginInfo", [userInfo]);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///设置当前第二窗口状态
|
|
|
+ Future<void> setSecondWindowStateInfoAsync(bool isSecondWindowMode) async {
|
|
|
+ var rpcRst = await call("SetSecondWindowState", [isSecondWindowMode]);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///默认词条变更
|
|
|
+ Future<void> thesaurusChange() async {
|
|
|
+ var rpcRst = await call("ThesaurusChange");
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///提交报告通知
|
|
|
+ Future<void> onSubmitReport(String patientId, String code) async {
|
|
|
+ var rpcRst = await call("OnSubmitReport", [patientId, code]);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///刷新报告通知
|
|
|
+ Future<void> refershReports() async {
|
|
|
+ var rpcRst = await call("RefershReports", []);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///刷新报告通知
|
|
|
+ Future<void> reloadConfig() async {
|
|
|
+ var rpcRst = await call("ReloadConfig", []);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///重载配置
|
|
|
+ Future<bool> getIsUseSecondWindow() async {
|
|
|
+ var rpcRst = await call("GetIsUseSecondWindow", []);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///重载配置
|
|
|
+ Future<bool> getIsWin7() async {
|
|
|
+ var rpcRst = await call("GetIsWin7", []);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///打开控制台
|
|
|
+ Future<void> openConsole() async {
|
|
|
+ var rpcRst = await call("OpenConsole", []);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///主窗口关闭通知
|
|
|
+ Future<void> onMainWindowLogout() async {
|
|
|
+ var rpcRst = await call("OnMainWindowLogout", []);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///设置开启自启动
|
|
|
+ Future<void> setAutoStartAsync(bool isAutoStart) async {
|
|
|
+ var rpcRst = await call("SetAutoStart", [isAutoStart]);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///启用壳子录音
|
|
|
+ Future<void> startShellRecord() async {
|
|
|
+ var rpcRst = await call("StartShellRecord");
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///停止壳子录音
|
|
|
+ Future<String> stopShellRecord() async {
|
|
|
+ var rpcRst = await call("StopShellRecord");
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+
|
|
|
+ ///导出日志
|
|
|
+ Future<bool> exportAppLogZipFile(int exportType, String fileName) async {
|
|
|
+ var rpcRst = await call("ExportAppLogZipFile", [exportType, fileName]);
|
|
|
+ return rpcRst;
|
|
|
+ }
|
|
|
+}
|