Browse Source

新增接口

loki.wu 1 year ago
parent
commit
fd63f3b906

+ 136 - 129
lib/rpc.dart

@@ -69,202 +69,208 @@ class JsonRpcProxy {
   /// 平台服务
   PlatformService get platform {
     if (_platformService == null)
-      _platformService =
-          PlatformService("http://$platformHost", timeout: 15000);
+      _platformService = PlatformService("http://$platformHost", timeout: 15000);
     return _platformService!;
   }
 
-  LiveConsultationService get liveConsultation =>
-      findService(() => new LiveConsultationService(currentHostAddress));
+	LiveConsultationService get liveConsultation =>
+	findService(() => new LiveConsultationService(currentHostAddress));
 
-  AIDiagnosisService get aIDiagnosis =>
-      findService(() => new AIDiagnosisService(currentHostAddress));
+	AIDiagnosisService get aIDiagnosis =>
+	findService(() => new AIDiagnosisService(currentHostAddress));
 
-  AppletAPIService get appletAPI =>
-      findService(() => new AppletAPIService(currentHostAddress));
+	AppletAPIService get appletAPI =>
+	findService(() => new AppletAPIService(currentHostAddress));
 
-  ASRService get aSR => findService(() => new ASRService(currentHostAddress));
+	ASRService get aSR =>
+	findService(() => new ASRService(currentHostAddress));
 
-  AuthenticationService get authentication =>
-      findService(() => new AuthenticationService(currentHostAddress));
+	AuthenticationService get authentication =>
+	findService(() => new AuthenticationService(currentHostAddress));
 
-  ChatMessageService get chatMessage =>
-      findService(() => new ChatMessageService(currentHostAddress));
+	ChatMessageService get chatMessage =>
+	findService(() => new ChatMessageService(currentHostAddress));
 
-  ConnectService get connect =>
-      findService(() => new ConnectService(currentHostAddress));
+	ConnectService get connect =>
+	findService(() => new ConnectService(currentHostAddress));
 
-  DeployPlatformService get deployPlatform =>
-      findService(() => new DeployPlatformService(currentHostAddress));
+	DeployPlatformService get deployPlatform =>
+	findService(() => new DeployPlatformService(currentHostAddress));
 
-  DeviceService get device =>
-      findService(() => new DeviceService(currentHostAddress));
+	DeviceService get device =>
+	findService(() => new DeviceService(currentHostAddress));
 
-  EducationService get education =>
-      findService(() => new EducationService(currentHostAddress));
+	EducationService get education =>
+	findService(() => new EducationService(currentHostAddress));
 
-  EmailService get email =>
-      findService(() => new EmailService(currentHostAddress));
+	EmailService get email =>
+	findService(() => new EmailService(currentHostAddress));
 
-  IdentityApplyService get identityApply =>
-      findService(() => new IdentityApplyService(currentHostAddress));
+	IdentityApplyService get identityApply =>
+	findService(() => new IdentityApplyService(currentHostAddress));
 
-  LabService get lab => findService(() => new LabService(currentHostAddress));
+	LabService get lab =>
+	findService(() => new LabService(currentHostAddress));
 
-  LoginService get login =>
-      findService(() => new LoginService(currentHostAddress));
+	LoginService get login =>
+	findService(() => new LoginService(currentHostAddress));
 
-  OrganizationService get organization =>
-      findService(() => new OrganizationService(currentHostAddress));
+	OrganizationService get organization =>
+	findService(() => new OrganizationService(currentHostAddress));
 
-  PatientService get patient =>
-      findService(() => new PatientService(currentHostAddress));
+	PatientService get patient =>
+	findService(() => new PatientService(currentHostAddress));
 
-  PaymentService get payment =>
-      findService(() => new PaymentService(currentHostAddress));
+	PaymentService get payment =>
+	findService(() => new PaymentService(currentHostAddress));
 
-  PositionService get position =>
-      findService(() => new PositionService(currentHostAddress));
+	PositionService get position =>
+	findService(() => new PositionService(currentHostAddress));
 
-  RankService get rank =>
-      findService(() => new RankService(currentHostAddress));
+	RankService get rank =>
+	findService(() => new RankService(currentHostAddress));
 
-  RecognitionService get recognition =>
-      findService(() => new RecognitionService(currentHostAddress));
+	RecognitionService get recognition =>
+	findService(() => new RecognitionService(currentHostAddress));
 
-  RecordInfoService get recordInfo =>
-      findService(() => new RecordInfoService(currentHostAddress));
+	RecordInfoService get recordInfo =>
+	findService(() => new RecordInfoService(currentHostAddress));
 
-  RegionService get region =>
-      findService(() => new RegionService(currentHostAddress));
+	RegionService get region =>
+	findService(() => new RegionService(currentHostAddress));
 
-  RegisterService get register =>
-      findService(() => new RegisterService(currentHostAddress));
+	RegisterService get register =>
+	findService(() => new RegisterService(currentHostAddress));
 
-  RemedicalService get remedical =>
-      findService(() => new RemedicalService(currentHostAddress));
+	RemedicalService get remedical =>
+	findService(() => new RemedicalService(currentHostAddress));
 
-  ReportService get report =>
-      findService(() => new ReportService(currentHostAddress));
+	RemoteUltrasoundService get remoteUltrasound =>
+	findService(() => new RemoteUltrasoundService(currentHostAddress));
 
-  RoleService get role =>
-      findService(() => new RoleService(currentHostAddress));
+	ReportService get report =>
+	findService(() => new ReportService(currentHostAddress));
 
-  SMSService get sMS => findService(() => new SMSService(currentHostAddress));
+	RoleService get role =>
+	findService(() => new RoleService(currentHostAddress));
 
-  StorageService get storage =>
-      findService(() => new StorageService(currentHostAddress));
+	SMSService get sMS =>
+	findService(() => new SMSService(currentHostAddress));
 
-  UpgradeService get upgrade =>
-      findService(() => new UpgradeService(currentHostAddress));
+	StorageService get storage =>
+	findService(() => new StorageService(currentHostAddress));
 
-  UserService get user =>
-      findService(() => new UserService(currentHostAddress));
+	UpgradeService get upgrade =>
+	findService(() => new UpgradeService(currentHostAddress));
 
-  VinnoIOTService get vinnoIOT =>
-      findService(() => new VinnoIOTService(currentHostAddress));
+	UserService get user =>
+	findService(() => new UserService(currentHostAddress));
 
-  VinnoServerService get vinnoServer =>
-      findService(() => new VinnoServerService(currentHostAddress));
+	VinnoIOTService get vinnoIOT =>
+	findService(() => new VinnoIOTService(currentHostAddress));
 
-  VitalHealthExamBookingService get vitalHealthExamBooking =>
-      findService(() => new VitalHealthExamBookingService(currentHostAddress));
+	VinnoServerService get vinnoServer =>
+	findService(() => new VinnoServerService(currentHostAddress));
 
-  VitalAnalyzeConfigService get vitalAnalyzeConfig =>
-      findService(() => new VitalAnalyzeConfigService(currentHostAddress));
+	VitalHealthExamBookingService get vitalHealthExamBooking =>
+	findService(() => new VitalHealthExamBookingService(currentHostAddress));
 
-  VitalCompletionRecordService get vitalCompletionRecord =>
-      findService(() => new VitalCompletionRecordService(currentHostAddress));
+	VitalAnalyzeConfigService get vitalAnalyzeConfig =>
+	findService(() => new VitalAnalyzeConfigService(currentHostAddress));
 
-  VitalContractRecordService get vitalContractRecord =>
-      findService(() => new VitalContractRecordService(currentHostAddress));
+	VitalCompletionRecordService get vitalCompletionRecord =>
+	findService(() => new VitalCompletionRecordService(currentHostAddress));
 
-  VitalContractTemplateService get vitalContractTemplate =>
-      findService(() => new VitalContractTemplateService(currentHostAddress));
+	VitalContractRecordService get vitalContractRecord =>
+	findService(() => new VitalContractRecordService(currentHostAddress));
 
-  VitalDeviceService get vitalDevice =>
-      findService(() => new VitalDeviceService(currentHostAddress));
+	VitalContractTemplateService get vitalContractTemplate =>
+	findService(() => new VitalContractTemplateService(currentHostAddress));
 
-  VitalDiagnosisService get vitalDiagnosis =>
-      findService(() => new VitalDiagnosisService(currentHostAddress));
+	VitalDeviceService get vitalDevice =>
+	findService(() => new VitalDeviceService(currentHostAddress));
 
-  VitalDictionaryService get vitalDictionary =>
-      findService(() => new VitalDictionaryService(currentHostAddress));
+	VitalDiagnosisService get vitalDiagnosis =>
+	findService(() => new VitalDiagnosisService(currentHostAddress));
 
-  VitalDynamicTypeService get vitalDynamicType =>
-      findService(() => new VitalDynamicTypeService(currentHostAddress));
+	VitalDictionaryService get vitalDictionary =>
+	findService(() => new VitalDictionaryService(currentHostAddress));
 
-  VitalExamService get vitalExam =>
-      findService(() => new VitalExamService(currentHostAddress));
+	VitalDynamicTypeService get vitalDynamicType =>
+	findService(() => new VitalDynamicTypeService(currentHostAddress));
 
-  VitalFollowUpService get vitalFollowUp =>
-      findService(() => new VitalFollowUpService(currentHostAddress));
+	VitalExamService get vitalExam =>
+	findService(() => new VitalExamService(currentHostAddress));
 
-  VitalLabelService get vitalLabel =>
-      findService(() => new VitalLabelService(currentHostAddress));
+	VitalFollowUpService get vitalFollowUp =>
+	findService(() => new VitalFollowUpService(currentHostAddress));
 
-  VitalLoginService get vitalLogin =>
-      findService(() => new VitalLoginService(currentHostAddress));
+	VitalLabelService get vitalLabel =>
+	findService(() => new VitalLabelService(currentHostAddress));
 
-  VitalOperationLogService get vitalOperationLog =>
-      findService(() => new VitalOperationLogService(currentHostAddress));
+	VitalLoginService get vitalLogin =>
+	findService(() => new VitalLoginService(currentHostAddress));
 
-  VitalOrganizationService get vitalOrganization =>
-      findService(() => new VitalOrganizationService(currentHostAddress));
+	VitalOperationLogService get vitalOperationLog =>
+	findService(() => new VitalOperationLogService(currentHostAddress));
 
-  VitalPatientExtensionService get vitalPatientExtension =>
-      findService(() => new VitalPatientExtensionService(currentHostAddress));
+	VitalOrganizationService get vitalOrganization =>
+	findService(() => new VitalOrganizationService(currentHostAddress));
 
-  VitalPatientService get vitalPatient =>
-      findService(() => new VitalPatientService(currentHostAddress));
+	VitalPatientExtensionService get vitalPatientExtension =>
+	findService(() => new VitalPatientExtensionService(currentHostAddress));
 
-  VitalRegionService get vitalRegion =>
-      findService(() => new VitalRegionService(currentHostAddress));
+	VitalPatientService get vitalPatient =>
+	findService(() => new VitalPatientService(currentHostAddress));
 
-  VitalReportService get vitalReport =>
-      findService(() => new VitalReportService(currentHostAddress));
+	VitalRegionService get vitalRegion =>
+	findService(() => new VitalRegionService(currentHostAddress));
 
-  VitalResidenceService get vitalResidence =>
-      findService(() => new VitalResidenceService(currentHostAddress));
+	VitalReportService get vitalReport =>
+	findService(() => new VitalReportService(currentHostAddress));
 
-  VitalRoleService get vitalRole =>
-      findService(() => new VitalRoleService(currentHostAddress));
+	VitalResidenceService get vitalResidence =>
+	findService(() => new VitalResidenceService(currentHostAddress));
 
-  VitalScheduleService get vitalSchedule =>
-      findService(() => new VitalScheduleService(currentHostAddress));
+	VitalRoleService get vitalRole =>
+	findService(() => new VitalRoleService(currentHostAddress));
 
-  VitalServicePackService get vitalServicePack =>
-      findService(() => new VitalServicePackService(currentHostAddress));
+	VitalScheduleService get vitalSchedule =>
+	findService(() => new VitalScheduleService(currentHostAddress));
 
-  VitalStatisticService get vitalStatistic =>
-      findService(() => new VitalStatisticService(currentHostAddress));
+	VitalServicePackService get vitalServicePack =>
+	findService(() => new VitalServicePackService(currentHostAddress));
 
-  VitalSystemSettingService get vitalSystemSetting =>
-      findService(() => new VitalSystemSettingService(currentHostAddress));
+	VitalStatisticService get vitalStatistic =>
+	findService(() => new VitalStatisticService(currentHostAddress));
 
-  VitalTeamRegionService get vitalTeamRegion =>
-      findService(() => new VitalTeamRegionService(currentHostAddress));
+	VitalSystemSettingService get vitalSystemSetting =>
+	findService(() => new VitalSystemSettingService(currentHostAddress));
 
-  VitalTeamService get vitalTeam =>
-      findService(() => new VitalTeamService(currentHostAddress));
+	VitalTeamRegionService get vitalTeamRegion =>
+	findService(() => new VitalTeamRegionService(currentHostAddress));
 
-  VitalTemplateService get vitalTemplate =>
-      findService(() => new VitalTemplateService(currentHostAddress));
+	VitalTeamService get vitalTeam =>
+	findService(() => new VitalTeamService(currentHostAddress));
 
-  VitalTownService get vitalTown =>
-      findService(() => new VitalTownService(currentHostAddress));
+	VitalTemplateService get vitalTemplate =>
+	findService(() => new VitalTemplateService(currentHostAddress));
 
-  VitalUpgradeService get vitalUpgrade =>
-      findService(() => new VitalUpgradeService(currentHostAddress));
+	VitalTownService get vitalTown =>
+	findService(() => new VitalTownService(currentHostAddress));
 
-  VitalUserFeatureService get vitalUserFeature =>
-      findService(() => new VitalUserFeatureService(currentHostAddress));
+	VitalUpgradeService get vitalUpgrade =>
+	findService(() => new VitalUpgradeService(currentHostAddress));
 
-  VitalUserPasswordService get vitalUserPassword =>
-      findService(() => new VitalUserPasswordService(currentHostAddress));
+	VitalUserFeatureService get vitalUserFeature =>
+	findService(() => new VitalUserFeatureService(currentHostAddress));
+
+	VitalUserPasswordService get vitalUserPassword =>
+	findService(() => new VitalUserPasswordService(currentHostAddress));
+
+	VitalUserService get vitalUser =>
+	findService(() => new VitalUserService(currentHostAddress));
 
-  VitalUserService get vitalUser =>
-      findService(() => new VitalUserService(currentHostAddress));
 
   /* 服务代理设置 End */
 
@@ -291,3 +297,4 @@ class JsonRpcProxy {
     return _serviceCache[serviceType] as T;
   }
 }
+

+ 4 - 0
lib/services/device.m.dart

@@ -788,6 +788,7 @@ class PageCollection<T> {
 	int pageIndex;
 	int pageSize;
 	int dataCount;
+	int totalCount;
 	List<T>? pageData;
 
 	PageCollection({
@@ -795,6 +796,7 @@ class PageCollection<T> {
 		this.pageIndex = 0,
 		this.pageSize = 0,
 		this.dataCount = 0,
+		this.totalCount = 0,
 		this.pageData,
 	});
 
@@ -809,6 +811,7 @@ class PageCollection<T> {
 			pageIndex: map['PageIndex'],
 			pageSize: map['PageSize'],
 			dataCount: map['DataCount'],
+			totalCount: map['TotalCount'],
 			pageData: pageDataList,
 		);
 	}
@@ -819,6 +822,7 @@ class PageCollection<T> {
 		map['PageIndex'] = pageIndex;
 		map['PageSize'] = pageSize;
 		map['DataCount'] = dataCount;
+		map['TotalCount'] = totalCount;
 		if (pageData != null) {
 			map['PageData'] = pageData;
 		}

+ 7 - 0
lib/services/education.dart

@@ -55,6 +55,7 @@ class EducationService extends JsonRpcClientBase {
 		FJsonConvert.setDecoder((map) => CourseBrowsedRecordDTO.fromJson(map));
 		FJsonConvert.setDecoder((map) => PageResult<CourseBrowsedRecordDTO>.fromJson(map));
 		FJsonConvert.setDecoder((map) => CourseVisitorsStatisticResult.fromJson(map));
+		FJsonConvert.setDecoder((map) => WXCarouselsResult.fromJson(map));
 	}
 
 	Future<List<CourseLabelDTO>> getCourseLabelsAsync(QueryCourseLabelListRequest request) async {
@@ -444,5 +445,11 @@ class EducationService extends JsonRpcClientBase {
 		return result;
 	}
 
+	Future<List<WXCarouselsResult>> getWXCarouselsAsync(GetWXCarouselRequest request) async {
+		var rpcRst = await call("GetWXCarouselsAsync", request);
+		var result = (rpcRst as List).map((e)=>WXCarouselsResult.fromJson(e as Map<String, dynamic>)).toList();
+		return result;
+	}
+
 }
 

+ 63 - 0
lib/services/education.m.dart

@@ -148,12 +148,14 @@ class QueryCourseLabelListRequest extends TokenRequest{
 	String? languageCode;
 	LabelTypeEnum type;
 	String? parentCode;
+	String? labelCode;
 
 	QueryCourseLabelListRequest({
 		this.name,
 		this.languageCode,
 		this.type = LabelTypeEnum.Unknown,
 		this.parentCode,
+		this.labelCode,
 		String? token,
 	}) : super(
 			token: token,
@@ -165,6 +167,7 @@ class QueryCourseLabelListRequest extends TokenRequest{
 			languageCode: map['LanguageCode'],
 			type: LabelTypeEnum.values.firstWhere((e) => e.index == map['Type']),
 			parentCode: map['ParentCode'],
+			labelCode: map['LabelCode'],
 			token: map['Token'],
 		);
 	}
@@ -178,6 +181,8 @@ class QueryCourseLabelListRequest extends TokenRequest{
 		map['Type'] = type.index;
 		if (parentCode != null)
 			map['ParentCode'] = parentCode;
+		if (labelCode != null)
+			map['LabelCode'] = labelCode;
 		return map;
 	}
 }
@@ -4778,4 +4783,62 @@ class CourseVisitorsStatisticResult {
 	}
 }
 
+class WXCarouselsResult {
+	String? code;
+	String? fileToken;
+	String? transferUrl;
+
+	WXCarouselsResult({
+		this.code,
+		this.fileToken,
+		this.transferUrl,
+	});
+
+	factory WXCarouselsResult.fromJson(Map<String, dynamic> map) {
+		return WXCarouselsResult( 
+			code: map['Code'],
+			fileToken: map['FileToken'],
+			transferUrl: map['TransferUrl'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		if (code != null) {
+			map['Code'] = code;
+		}
+		if (fileToken != null) {
+			map['FileToken'] = fileToken;
+		}
+		if (transferUrl != null) {
+			map['TransferUrl'] = transferUrl;
+		}
+		return map;
+	}
+}
+
+class GetWXCarouselRequest extends TokenRequest{
+	AnnouncementTypeEnum announcementType;
+
+	GetWXCarouselRequest({
+		this.announcementType = AnnouncementTypeEnum.Broadcast,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory GetWXCarouselRequest.fromJson(Map<String, dynamic> map) {
+		return GetWXCarouselRequest( 
+			announcementType: AnnouncementTypeEnum.values.firstWhere((e) => e.index == map['AnnouncementType']),
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		map['AnnouncementType'] = announcementType.index;
+		return map;
+	}
+}
+
 

+ 1 - 0
lib/services/index.dart

@@ -24,6 +24,7 @@ export 'recordInfo.dart';
 export 'region.dart';
 export 'register.dart';
 export 'remedical.dart';
+export 'remoteUltrasound.dart';
 export 'report.dart';
 export 'role.dart';
 export 'sMS.dart';

+ 1 - 0
lib/services/notification.m.dart

@@ -340,6 +340,7 @@ enum AnnouncementTypeEnum {
 	Information,
 	OperateVideo,
 	Question,
+	WXOfficialAccountCarousel,
 }
 
 class AnnouncementLanguageConfigDTO {

+ 10 - 0
lib/services/other.m.dart

@@ -6097,6 +6097,7 @@ class DistributedServerInfoRequest extends TokenRequest{
 	String? shareCodePrefix;
 	String? defaultStorageNode;
 	String? storageServerConfig;
+	String? lANHost;
 
 	DistributedServerInfoRequest({
 		this.code,
@@ -6114,6 +6115,7 @@ class DistributedServerInfoRequest extends TokenRequest{
 		this.shareCodePrefix,
 		this.defaultStorageNode,
 		this.storageServerConfig,
+		this.lANHost,
 		String? token,
 	}) : super(
 			token: token,
@@ -6136,6 +6138,7 @@ class DistributedServerInfoRequest extends TokenRequest{
 			shareCodePrefix: map['ShareCodePrefix'],
 			defaultStorageNode: map['DefaultStorageNode'],
 			storageServerConfig: map['StorageServerConfig'],
+			lANHost: map['LANHost'],
 			token: map['Token'],
 		);
 	}
@@ -6168,6 +6171,8 @@ class DistributedServerInfoRequest extends TokenRequest{
 			map['DefaultStorageNode'] = defaultStorageNode;
 		if (storageServerConfig != null)
 			map['StorageServerConfig'] = storageServerConfig;
+		if (lANHost != null)
+			map['LANHost'] = lANHost;
 		return map;
 	}
 }
@@ -21851,6 +21856,7 @@ class DistributedServerInfoDTO extends BaseDTO{
 	String? shareCodePrefix;
 	String? defaultStorageNode;
 	String? storageServerConfig;
+	String? lANHost;
 
 	DistributedServerInfoDTO({
 		this.serverCode,
@@ -21867,6 +21873,7 @@ class DistributedServerInfoDTO extends BaseDTO{
 		this.shareCodePrefix,
 		this.defaultStorageNode,
 		this.storageServerConfig,
+		this.lANHost,
 		DateTime? createTime,
 		DateTime? updateTime,
 	}) : super(
@@ -21890,6 +21897,7 @@ class DistributedServerInfoDTO extends BaseDTO{
 			shareCodePrefix: map['ShareCodePrefix'],
 			defaultStorageNode: map['DefaultStorageNode'],
 			storageServerConfig: map['StorageServerConfig'],
+			lANHost: map['LANHost'],
 			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
 			updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
 		);
@@ -21921,6 +21929,8 @@ class DistributedServerInfoDTO extends BaseDTO{
 			map['DefaultStorageNode'] = defaultStorageNode;
 		if (storageServerConfig != null)
 			map['StorageServerConfig'] = storageServerConfig;
+		if (lANHost != null)
+			map['LANHost'] = lANHost;
 		return map;
 	}
 }

+ 72 - 0
lib/services/remoteUltrasound.dart

@@ -0,0 +1,72 @@
+import 'dart:core';
+
+import 'package:fis_jsonrpc/client_base.dart';
+import 'package:fis_common/json_convert.dart';
+
+
+import 'recordInfo.m.dart';
+import 'liveConsultation.m.dart';
+import 'remedical.m.dart';
+import 'patient.m.dart';
+
+
+class RemoteUltrasoundService extends JsonRpcClientBase {
+	RemoteUltrasoundService(
+		String host, {
+		String serviceName = "IRemoteUltrasoundService",
+		Map<String, String>? headers,
+		int? timeout,
+	}) : super(
+						host,
+						serviceName,
+						headers: headers,
+						timeout: timeout,
+				) {
+		/// 注册响应实体反序列化处理器
+		FJsonConvert.setDecoder((map) => PageResult<SimpleRecordInfoDTO>.fromJson(map));
+		FJsonConvert.setDecoder((map) => SimpleRecordInfoDTO.fromJson(map));
+		FJsonConvert.setDecoder((map) => QueryRecordResult.fromJson(map));
+		FJsonConvert.setDecoder((map) => RemedicalListResult.fromJson(map));
+		FJsonConvert.setDecoder((map) => PageResult<RemedicalListResult>.fromJson(map));
+		FJsonConvert.setDecoder((map) => RemedicalInfoDTO.fromJson(map));
+		FJsonConvert.setDecoder((map) => ClientPatientInfoDTO.fromJson(map));
+	}
+
+	Future<PageResult<SimpleRecordInfoDTO>> vitalFindRecordPagesAsync(FindRecordPagesRequest request) async {
+		var rpcRst = await call("VitalFindRecordPagesAsync", request);
+		var result = PageResult<SimpleRecordInfoDTO>.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
+	Future<QueryRecordResult> vitalQueryRecordInfoAsync(QueryRecordRequest request) async {
+		var rpcRst = await call("VitalQueryRecordInfoAsync", request);
+		var result = QueryRecordResult.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
+	Future<RemedicalListResult> vitalGetRemedicalListByRecordInfoAsync(QueryRecordRequest request) async {
+		var rpcRst = await call("VitalGetRemedicalListByRecordInfoAsync", request);
+		var result = RemedicalListResult.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
+	Future<PageResult<RemedicalListResult>> vitalGetRemedicalListPagesAsync(GetRecordsPageRequest request) async {
+		var rpcRst = await call("VitalGetRemedicalListPagesAsync", request);
+		var result = PageResult<RemedicalListResult>.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
+	Future<RemedicalInfoDTO> vitalFindRemedicalByCodeAsync(FindRemedicalByCodeRequest request) async {
+		var rpcRst = await call("VitalFindRemedicalByCodeAsync", request);
+		var result = RemedicalInfoDTO.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
+	Future<ClientPatientInfoDTO> vitalFindPatientByCodeAsync(FindPatientByCodeRequest request) async {
+		var rpcRst = await call("VitalFindPatientByCodeAsync", request);
+		var result = ClientPatientInfoDTO.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
+}
+

+ 15 - 1
lib/services/vinnoIOT.dart

@@ -31,6 +31,8 @@ class VinnoIOTService extends JsonRpcClientBase {
 		FJsonConvert.setDecoder((map) => UserDeviceInfoResult.fromJson(map));
 		FJsonConvert.setDecoder((map) => IOTDeviceSumaryResult.fromJson(map));
 		FJsonConvert.setDecoder((map) => IOTDeviceVersionResult.fromJson(map));
+		FJsonConvert.setDecoder((map) => IOTDeviceBasicDataResult.fromJson(map));
+		FJsonConvert.setDecoder((map) => IOTDeviceBasicWeatherResult.fromJson(map));
 	}
 
 	Future<List<IOTDeviceCarouselsResult>> getCarousels(TokenRequest request) async {
@@ -120,7 +122,7 @@ class VinnoIOTService extends JsonRpcClientBase {
 		return rpcRst;
 	}
 
-	Future<IOTDeviceOperateResult> deviceEventPost(IOTDeviceAttributeEscalationRequest request) async {
+	Future<IOTDeviceOperateResult> deviceEventPost(IOTReportAttributeEscalationRequest request) async {
 		var rpcRst = await call("DeviceEventPost", request);
 		var result = IOTDeviceOperateResult.fromJson(rpcRst as Map<String, dynamic>);
 		return result;
@@ -132,5 +134,17 @@ class VinnoIOTService extends JsonRpcClientBase {
 		return result;
 	}
 
+	Future<IOTDeviceBasicDataResult> deviceGetServerTimeAsync(TokenRequest request) async {
+		var rpcRst = await call("DeviceGetServerTimeAsync", request);
+		var result = IOTDeviceBasicDataResult.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
+	Future<IOTDeviceBasicWeatherResult> getWeatherInfoAsync(IOTWeatherRequest request) async {
+		var rpcRst = await call("GetWeatherInfoAsync", request);
+		var result = IOTDeviceBasicWeatherResult.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
 }
 

+ 159 - 5
lib/services/vinnoIOT.m.dart

@@ -1425,32 +1425,107 @@ class IOTDeviceAttributeEscalationRequest extends TokenRequest{
 	}
 }
 
-class IOTDeviceTopicInfoRequest {
+class IOTDeviceTopicInfoRequest extends TokenRequest{
 	String? deviceId;
 	bool deviceOpen;
 
 	IOTDeviceTopicInfoRequest({
 		this.deviceId,
 		this.deviceOpen = false,
-	});
+		String? token,
+	}) : super(
+			token: token,
+		);
 
 	factory IOTDeviceTopicInfoRequest.fromJson(Map<String, dynamic> map) {
 		return IOTDeviceTopicInfoRequest( 
 			deviceId: map['DeviceId'],
 			deviceOpen: map['DeviceOpen'],
+			token: map['Token'],
 		);
 	}
 
 	Map<String, dynamic> toJson() {
-		final map = Map<String, dynamic>();
-		if (deviceId != null) {
+		final map = super.toJson();
+		if (deviceId != null)
 			map['DeviceId'] = deviceId;
-		}
 		map['DeviceOpen'] = deviceOpen;
 		return map;
 	}
 }
 
+class IOTReportAttributeEscalationRequest extends TokenRequest{
+	String? userCode;
+	String? id;
+	String? clientId;
+	String? productNo;
+	int type;
+	ReportType reportType;
+	ModeType mode;
+	DateTime? timestamp;
+	String? endpoint;
+	String? method;
+	String? reportAttributesJson;
+
+	IOTReportAttributeEscalationRequest({
+		this.userCode,
+		this.id,
+		this.clientId,
+		this.productNo,
+		this.type = 0,
+		this.reportType = ReportType.Day,
+		this.mode = ModeType.CPAP,
+		this.timestamp,
+		this.endpoint,
+		this.method,
+		this.reportAttributesJson,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory IOTReportAttributeEscalationRequest.fromJson(Map<String, dynamic> map) {
+		return IOTReportAttributeEscalationRequest( 
+			userCode: map['UserCode'],
+			id: map['Id'],
+			clientId: map['ClientId'],
+			productNo: map['ProductNo'],
+			type: map['Type'],
+			reportType: ReportType.values.firstWhere((e) => e.index == map['ReportType']),
+			mode: ModeType.values.firstWhere((e) => e.index == map['Mode']),
+			timestamp: map['Timestamp'] != null ? DateTime.parse(map['Timestamp']) : null,
+			endpoint: map['Endpoint'],
+			method: map['Method'],
+			reportAttributesJson: map['ReportAttributesJson'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if (userCode != null)
+			map['UserCode'] = userCode;
+		if (id != null)
+			map['Id'] = id;
+		if (clientId != null)
+			map['ClientId'] = clientId;
+		if (productNo != null)
+			map['ProductNo'] = productNo;
+		map['Type'] = type;
+		map['ReportType'] = reportType.index;
+		map['Mode'] = mode.index;
+		if (timestamp != null)
+			map['Timestamp'] = JsonRpcUtils.dateFormat(timestamp!);
+		if (endpoint != null)
+			map['Endpoint'] = endpoint;
+		if (method != null)
+			map['Method'] = method;
+		if (reportAttributesJson != null)
+			map['ReportAttributesJson'] = reportAttributesJson;
+		return map;
+	}
+}
+
 class IOTDeviceRegisterRequest extends TokenRequest{
 	String? deviceModel;
 	String? deviceSN;
@@ -1491,4 +1566,83 @@ class IOTDeviceRegisterRequest extends TokenRequest{
 	}
 }
 
+class IOTDeviceBasicDataResult {
+	int timestamp;
+
+	IOTDeviceBasicDataResult({
+		this.timestamp = 0,
+	});
+
+	factory IOTDeviceBasicDataResult.fromJson(Map<String, dynamic> map) {
+		return IOTDeviceBasicDataResult( 
+			timestamp: map['Timestamp'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		map['Timestamp'] = timestamp;
+		return map;
+	}
+}
+
+class IOTDeviceBasicWeatherResult {
+	double weatherType;
+	double temperature;
+	double humidity;
+	String? location;
+
+	IOTDeviceBasicWeatherResult({
+		this.weatherType = 0,
+		this.temperature = 0,
+		this.humidity = 0,
+		this.location,
+	});
+
+	factory IOTDeviceBasicWeatherResult.fromJson(Map<String, dynamic> map) {
+		return IOTDeviceBasicWeatherResult( 
+			weatherType: double.parse(map['WeatherType'].toString()),
+			temperature: double.parse(map['Temperature'].toString()),
+			humidity: double.parse(map['Humidity'].toString()),
+			location: map['Location'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		map['WeatherType'] = weatherType;
+		map['Temperature'] = temperature;
+		map['Humidity'] = humidity;
+		if (location != null) {
+			map['Location'] = location;
+		}
+		return map;
+	}
+}
+
+class IOTWeatherRequest extends TokenRequest{
+	String? location;
+
+	IOTWeatherRequest({
+		this.location,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory IOTWeatherRequest.fromJson(Map<String, dynamic> map) {
+		return IOTWeatherRequest( 
+			location: map['Location'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if (location != null)
+			map['Location'] = location;
+		return map;
+	}
+}
+
 

+ 1 - 6
lib/services/vitalExam.m.dart

@@ -1,6 +1,7 @@
 import 'liveConsultation.m.dart';
 import 'notification.m.dart';
 import 'vitalContractRecord.m.dart';
+import 'vitalHealthExamBooking.m.dart';
 import 'device.m.dart';
 
 import 'package:fis_jsonrpc/utils.dart';
@@ -60,12 +61,6 @@ class CreateExamRequest extends TokenRequest{
 	}
 }
 
-enum ExamStateEnum {
-	Unchecked,
-	Invalid,
-	Inspected,
-}
-
 class ExamDTO extends BaseDTO{
 	String? code;
 	String? key;

+ 25 - 0
lib/services/vitalHealthExamBooking.dart

@@ -23,6 +23,9 @@ class VitalHealthExamBookingService extends JsonRpcClientBase {
 		/// 注册响应实体反序列化处理器
 		FJsonConvert.setDecoder((map) => PageResult<HealthExamBookingDTO>.fromJson(map));
 		FJsonConvert.setDecoder((map) => HealthExamBookingDTO.fromJson(map));
+		FJsonConvert.setDecoder((map) => HealthExamPersonDTO.fromJson(map));
+		FJsonConvert.setDecoder((map) => PageResult<RegisterInfoDTO>.fromJson(map));
+		FJsonConvert.setDecoder((map) => RegisterInfoDTO.fromJson(map));
 	}
 
 	Future<PageResult<HealthExamBookingDTO>> getHealthExamBookingPageAsync(GetHealthExamBookingPageRequest request) async {
@@ -52,5 +55,27 @@ class VitalHealthExamBookingService extends JsonRpcClientBase {
 		return rpcRst;
 	}
 
+	Future<HealthExamPersonDTO> getExamBookingByIDCardAsync(GetExamBookingByIDCardRequest request) async {
+		var rpcRst = await call("GetExamBookingByIDCardAsync", request);
+		var result = HealthExamPersonDTO.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
+	Future<String> addRegiterInfoAsync(AddRegiterInfoRequest request) async {
+		var rpcRst = await call("AddRegiterInfoAsync", request);
+		return rpcRst;
+	}
+
+	Future<bool> updateRegiterInfoAsync(UpdateRegiterInfoRequest request) async {
+		var rpcRst = await call("UpdateRegiterInfoAsync", request);
+		return rpcRst;
+	}
+
+	Future<PageResult<RegisterInfoDTO>> getRegisterInfoPageAsync(GetRegiterInfoPageRequest request) async {
+		var rpcRst = await call("GetRegisterInfoPageAsync", request);
+		var result = PageResult<RegisterInfoDTO>.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
 }
 

+ 240 - 0
lib/services/vitalHealthExamBooking.m.dart

@@ -380,4 +380,244 @@ class SignUpHealthExamBookingRequest extends TokenRequest{
 	}
 }
 
+class GetExamBookingByIDCardRequest extends TokenRequest{
+	String? iDCardNo;
+	String? operatorCode;
+
+	GetExamBookingByIDCardRequest({
+		this.iDCardNo,
+		this.operatorCode,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory GetExamBookingByIDCardRequest.fromJson(Map<String, dynamic> map) {
+		return GetExamBookingByIDCardRequest( 
+			iDCardNo: map['IDCardNo'],
+			operatorCode: map['OperatorCode'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if (iDCardNo != null)
+			map['IDCardNo'] = iDCardNo;
+		if (operatorCode != null)
+			map['OperatorCode'] = operatorCode;
+		return map;
+	}
+}
+
+class AddRegiterInfoRequest {
+	String? iDCardNo;
+	String? name;
+	String? sex;
+	String? age;
+	String? phone;
+	String? adress;
+	String? orgUniqueCode;
+
+	AddRegiterInfoRequest({
+		this.iDCardNo,
+		this.name,
+		this.sex,
+		this.age,
+		this.phone,
+		this.adress,
+		this.orgUniqueCode,
+	});
+
+	factory AddRegiterInfoRequest.fromJson(Map<String, dynamic> map) {
+		return AddRegiterInfoRequest( 
+			iDCardNo: map['IDCardNo'],
+			name: map['Name'],
+			sex: map['Sex'],
+			age: map['Age'],
+			phone: map['Phone'],
+			adress: map['Adress'],
+			orgUniqueCode: map['OrgUniqueCode'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		if (iDCardNo != null) {
+			map['IDCardNo'] = iDCardNo;
+		}
+		if (name != null) {
+			map['Name'] = name;
+		}
+		if (sex != null) {
+			map['Sex'] = sex;
+		}
+		if (age != null) {
+			map['Age'] = age;
+		}
+		if (phone != null) {
+			map['Phone'] = phone;
+		}
+		if (adress != null) {
+			map['Adress'] = adress;
+		}
+		if (orgUniqueCode != null) {
+			map['OrgUniqueCode'] = orgUniqueCode;
+		}
+		return map;
+	}
+}
+
+class UpdateRegiterInfoRequest extends AddRegiterInfoRequest{
+	String? code;
+
+	UpdateRegiterInfoRequest({
+		this.code,
+		String? iDCardNo,
+		String? name,
+		String? sex,
+		String? age,
+		String? phone,
+		String? adress,
+		String? orgUniqueCode,
+	}) : super(
+			iDCardNo: iDCardNo,
+			name: name,
+			sex: sex,
+			age: age,
+			phone: phone,
+			adress: adress,
+			orgUniqueCode: orgUniqueCode,
+		);
+
+	factory UpdateRegiterInfoRequest.fromJson(Map<String, dynamic> map) {
+		return UpdateRegiterInfoRequest( 
+			code: map['Code'],
+			iDCardNo: map['IDCardNo'],
+			name: map['Name'],
+			sex: map['Sex'],
+			age: map['Age'],
+			phone: map['Phone'],
+			adress: map['Adress'],
+			orgUniqueCode: map['OrgUniqueCode'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if (code != null)
+			map['Code'] = code;
+		return map;
+	}
+}
+
+enum ExamStateEnum {
+	Unchecked,
+	Invalid,
+	Inspected,
+}
+
+class RegisterInfoDTO extends BaseDTO{
+	String? code;
+	String? physicalExamNumber;
+	String? iDCardNo;
+	String? name;
+	String? sex;
+	String? age;
+	String? phone;
+	String? adress;
+	ExamStateEnum state;
+
+	RegisterInfoDTO({
+		this.code,
+		this.physicalExamNumber,
+		this.iDCardNo,
+		this.name,
+		this.sex,
+		this.age,
+		this.phone,
+		this.adress,
+		this.state = ExamStateEnum.Unchecked,
+		DateTime? createTime,
+		DateTime? updateTime,
+	}) : super(
+			createTime: createTime,
+			updateTime: updateTime,
+		);
+
+	factory RegisterInfoDTO.fromJson(Map<String, dynamic> map) {
+		return RegisterInfoDTO( 
+			code: map['Code'],
+			physicalExamNumber: map['PhysicalExamNumber'],
+			iDCardNo: map['IDCardNo'],
+			name: map['Name'],
+			sex: map['Sex'],
+			age: map['Age'],
+			phone: map['Phone'],
+			adress: map['Adress'],
+			state: ExamStateEnum.values.firstWhere((e) => e.index == map['State']),
+			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
+			updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if (code != null)
+			map['Code'] = code;
+		if (physicalExamNumber != null)
+			map['PhysicalExamNumber'] = physicalExamNumber;
+		if (iDCardNo != null)
+			map['IDCardNo'] = iDCardNo;
+		if (name != null)
+			map['Name'] = name;
+		if (sex != null)
+			map['Sex'] = sex;
+		if (age != null)
+			map['Age'] = age;
+		if (phone != null)
+			map['Phone'] = phone;
+		if (adress != null)
+			map['Adress'] = adress;
+		map['State'] = state.index;
+		return map;
+	}
+}
+
+class GetRegiterInfoPageRequest extends PageRequest{
+	String? keyword;
+	String? operatorCode;
+
+	GetRegiterInfoPageRequest({
+		this.keyword,
+		this.operatorCode,
+		int pageIndex = 0,
+		int pageSize = 0,
+		String? token,
+	}) : super(
+			pageIndex: pageIndex,
+			pageSize: pageSize,
+			token: token,
+		);
+
+	factory GetRegiterInfoPageRequest.fromJson(Map<String, dynamic> map) {
+		return GetRegiterInfoPageRequest( 
+			keyword: map['Keyword'],
+			operatorCode: map['OperatorCode'],
+			pageIndex: map['PageIndex'],
+			pageSize: map['PageSize'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if (keyword != null)
+			map['Keyword'] = keyword;
+		if (operatorCode != null)
+			map['OperatorCode'] = operatorCode;
+		return map;
+	}
+}
+
 

+ 1 - 1
lib/services/vitalReport.m.dart

@@ -1,6 +1,6 @@
 import 'liveConsultation.m.dart';
 import 'notification.m.dart';
-import 'vitalExam.m.dart';
+import 'vitalHealthExamBooking.m.dart';
 import 'device.m.dart';
 
 enum ReportStateEnum {