Browse Source

同步Server最新接口

loki.wu 2 years ago
parent
commit
62af0033b1

+ 5 - 0
lib/services/authentication.dart

@@ -66,5 +66,10 @@ class AuthenticationService extends JsonRpcClientBase {
 		return rpcRst;
 	}
 
+	Future<String> getTokenAsync(GetTokenRequest request) async {
+		var rpcRst = await call("GetTokenAsync", request);
+		return rpcRst;
+	}
+
 }
 

+ 32 - 0
lib/services/authentication.m.dart

@@ -218,4 +218,36 @@ class CreateAuthTokenRequest extends AuthTokenDTO{
 	}
 }
 
+enum AccountType {
+	Admin,
+	User,
+	Device,
+}
+
+class GetTokenRequest extends BaseRequest{
+	String? clientId;
+	AccountType accountType;
+
+	GetTokenRequest({
+		this.clientId,
+		this.accountType = AccountType.Admin,
+	}) : super(
+		);
+
+	factory GetTokenRequest.fromJson(Map<String, dynamic> map) {
+		return GetTokenRequest( 
+			clientId: map['ClientId'],
+			accountType: AccountType.values.firstWhere((e) => e.index == map['AccountType']),
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(clientId != null)
+			map['ClientId'] = clientId;
+		map['AccountType'] = accountType.index;
+		return map;
+	}
+}
+
 

+ 0 - 5
lib/services/login.m.dart

@@ -1,17 +1,14 @@
 class UserTokenDTO {
-	String? userCode;
 	String? deviceId;
 	String? token;
 
 	UserTokenDTO({
-		this.userCode,
 		this.deviceId,
 		this.token,
 	});
 
 	factory UserTokenDTO.fromJson(Map<String, dynamic> map) {
 		return UserTokenDTO( 
-			userCode: map['UserCode'],
 			deviceId: map['DeviceId'],
 			token: map['Token'],
 		);
@@ -19,8 +16,6 @@ class UserTokenDTO {
 
 	Map<String, dynamic> toJson() {
 		final map = Map<String, dynamic>();
-		if(userCode != null)
-			map['UserCode'] = userCode;
 		if(deviceId != null)
 			map['DeviceId'] = deviceId;
 		if(token != null)

+ 4 - 9
lib/services/notification.dart

@@ -18,18 +18,13 @@ class NotificationService extends JsonRpcClientBase {
 						timeout: timeout,
 				);
 
-	Future<bool> addNotificationToQueueAsync(SendNotificationRequest request) async {
-		var rpcRst = await call("AddNotificationToQueueAsync", request);
+	Future<bool> sendMessageAsync(SendNotificationRequest request) async {
+		var rpcRst = await call("SendMessageAsync", request);
 		return rpcRst;
 	}
 
-	Future<bool> subscribeNotifyAsync(SubscribeNotifyRequest request) async {
-		var rpcRst = await call("SubscribeNotifyAsync", request);
-		return rpcRst;
-	}
-
-	Future<bool> sendNotificationAsync(SendNotificationRequest request) async {
-		var rpcRst = await call("SendNotificationAsync", request);
+	Future<bool> postMessageAsync(SendNotificationRequest request) async {
+		var rpcRst = await call("PostMessageAsync", request);
 		return rpcRst;
 	}
 

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

@@ -74,30 +74,4 @@ class SendNotificationRequest {
 	}
 }
 
-class SubscribeNotifyRequest {
-	String? userCode;
-	String? token;
-
-	SubscribeNotifyRequest({
-		this.userCode,
-		this.token,
-	});
-
-	factory SubscribeNotifyRequest.fromJson(Map<String, dynamic> map) {
-		return SubscribeNotifyRequest( 
-			userCode: map['UserCode'],
-			token: map['Token'],
-		);
-	}
-
-	Map<String, dynamic> toJson() {
-		final map = Map<String, dynamic>();
-		if(userCode != null)
-			map['UserCode'] = userCode;
-		if(token != null)
-			map['Token'] = token;
-		return map;
-	}
-}
-
 

+ 16 - 0
lib/services/organization.dart

@@ -5,6 +5,8 @@ import 'package:fis_common/json_convert.dart';
 
 import 'organization.m.dart';
 
+import 'authentication.m.dart';
+
 
 class OrganizationService extends JsonRpcClientBase {
 	OrganizationService(
@@ -23,6 +25,8 @@ class OrganizationService extends JsonRpcClientBase {
 		FJsonConvert.setDecoder((map) => OrganizationBaseDTO.fromJson(map));
 		FJsonConvert.setDecoder((map) => OrganizationBasicDTO.fromJson(map));
 		FJsonConvert.setDecoder((map) => OrganizationSettingResult.fromJson(map));
+		FJsonConvert.setDecoder((map) => ServerSettingResult.fromJson(map));
+		FJsonConvert.setDecoder((map) => LangugeDataResult.fromJson(map));
 	}
 
 	Future<List<OrganizationDTO>> searchOrganizationsAsync(SearchOrganizationsRequest request) async {
@@ -81,5 +85,17 @@ class OrganizationService extends JsonRpcClientBase {
 		return result;
 	}
 
+	Future<ServerSettingResult> getServerSettingAsync(TokenRequest request) async {
+		var rpcRst = await call("GetServerSettingAsync", request);
+		var result = ServerSettingResult.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
+	Future<List<LangugeDataResult>> getLangugeDataListAsync(LangugeDataRequest request) async {
+		var rpcRst = await call("GetLangugeDataListAsync", request);
+		var result = (rpcRst as List).map((e)=>LangugeDataResult.fromJson(e as Map<String, dynamic>)).toList();
+		return result;
+	}
+
 }
 

+ 183 - 0
lib/services/organization.m.dart

@@ -39,12 +39,54 @@ enum OrganizationPatientTypeEnum {
 	Animals,
 }
 
+class SettingDTOClass {
+	String? settingModule;
+	String? customContent;
+	String? completeContent;
+	String? baseConfigVersion;
+	String? version;
+
+	SettingDTOClass({
+		this.settingModule,
+		this.customContent,
+		this.completeContent,
+		this.baseConfigVersion,
+		this.version,
+	});
+
+	factory SettingDTOClass.fromJson(Map<String, dynamic> map) {
+		return SettingDTOClass( 
+			settingModule: map['SettingModule'],
+			customContent: map['CustomContent'],
+			completeContent: map['CompleteContent'],
+			baseConfigVersion: map['BaseConfigVersion'],
+			version: map['Version'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		if(settingModule != null)
+			map['SettingModule'] = settingModule;
+		if(customContent != null)
+			map['CustomContent'] = customContent;
+		if(completeContent != null)
+			map['CompleteContent'] = completeContent;
+		if(baseConfigVersion != null)
+			map['BaseConfigVersion'] = baseConfigVersion;
+		if(version != null)
+			map['Version'] = version;
+		return map;
+	}
+}
+
 class OrganizationBasicDTO extends OrganizationBaseDTO{
 	String? regionCode;
 	String? parentCode;
 	String? logoUrl;
 	OrganizationPatientTypeEnum patientType;
 	bool isinvented;
+	List<SettingDTOClass>? settings;
 
 	OrganizationBasicDTO({
 		this.regionCode,
@@ -52,6 +94,7 @@ class OrganizationBasicDTO extends OrganizationBaseDTO{
 		this.logoUrl,
 		this.patientType = OrganizationPatientTypeEnum.Person,
 		this.isinvented = false,
+		this.settings,
 		String? organizationCode,
 		String? organizationName,
 		DateTime? createTime,
@@ -70,6 +113,7 @@ class OrganizationBasicDTO extends OrganizationBaseDTO{
 			logoUrl: map['LogoUrl'],
 			patientType: OrganizationPatientTypeEnum.values.firstWhere((e) => e.index == map['PatientType']),
 			isinvented: map['Isinvented'],
+			settings: map['Settings'] != null ? (map['Settings'] as List).map((e)=>SettingDTOClass.fromJson(e as Map<String,dynamic>)).toList() : null,
 			organizationCode: map['OrganizationCode'],
 			organizationName: map['OrganizationName'],
 			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
@@ -87,6 +131,8 @@ class OrganizationBasicDTO extends OrganizationBaseDTO{
 			map['LogoUrl'] = logoUrl;
 		map['PatientType'] = patientType.index;
 		map['Isinvented'] = isinvented;
+		if(settings != null)
+			map['Settings'] = settings;
 		return map;
 	}
 }
@@ -135,6 +181,7 @@ class OrganizationDTO extends OrganizationBasicDTO{
 		String? logoUrl,
 		OrganizationPatientTypeEnum patientType = OrganizationPatientTypeEnum.Person,
 		bool isinvented = false,
+		List<SettingDTOClass>? settings,
 		String? organizationCode,
 		String? organizationName,
 		DateTime? createTime,
@@ -145,6 +192,7 @@ class OrganizationDTO extends OrganizationBasicDTO{
 			logoUrl: logoUrl,
 			patientType: patientType,
 			isinvented: isinvented,
+			settings: settings,
 			organizationCode: organizationCode,
 			organizationName: organizationName,
 			createTime: createTime,
@@ -170,6 +218,7 @@ class OrganizationDTO extends OrganizationBasicDTO{
 			logoUrl: map['LogoUrl'],
 			patientType: OrganizationPatientTypeEnum.values.firstWhere((e) => e.index == map['PatientType']),
 			isinvented: map['Isinvented'],
+			settings: map['Settings'] != null ? (map['Settings'] as List).map((e)=>SettingDTOClass.fromJson(e as Map<String,dynamic>)).toList() : null,
 			organizationCode: map['OrganizationCode'],
 			organizationName: map['OrganizationName'],
 			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
@@ -563,4 +612,138 @@ class GetServerLangugeSettingRequest extends TokenRequest{
 	}
 }
 
+class ServerLangugeClass {
+	String? langugeKey;
+	List<String>? langugeModules;
+
+	ServerLangugeClass({
+		this.langugeKey,
+		this.langugeModules,
+	});
+
+	factory ServerLangugeClass.fromJson(Map<String, dynamic> map) {
+		return ServerLangugeClass( 
+			langugeKey: map['LangugeKey'],
+			langugeModules: map['LangugeModules'] != null ? map['LangugeModules'].cast<String>().toList() : null,
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		if(langugeKey != null)
+			map['LangugeKey'] = langugeKey;
+		if(langugeModules != null)
+			map['LangugeModules'] = langugeModules;
+		return map;
+	}
+}
+
+class ServerSettingResult {
+	List<ServerLangugeClass>? serverLangugeList;
+
+	ServerSettingResult({
+		this.serverLangugeList,
+	});
+
+	factory ServerSettingResult.fromJson(Map<String, dynamic> map) {
+		return ServerSettingResult( 
+			serverLangugeList: map['ServerLangugeList'] != null ? (map['ServerLangugeList'] as List).map((e)=>ServerLangugeClass.fromJson(e as Map<String,dynamic>)).toList() : null,
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		if(serverLangugeList != null)
+			map['ServerLangugeList'] = serverLangugeList;
+		return map;
+	}
+}
+
+class LangugeDataResult {
+	String? version;
+	String? content;
+	String? langugeModule;
+
+	LangugeDataResult({
+		this.version,
+		this.content,
+		this.langugeModule,
+	});
+
+	factory LangugeDataResult.fromJson(Map<String, dynamic> map) {
+		return LangugeDataResult( 
+			version: map['Version'],
+			content: map['Content'],
+			langugeModule: map['LangugeModule'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		if(version != null)
+			map['Version'] = version;
+		if(content != null)
+			map['Content'] = content;
+		if(langugeModule != null)
+			map['LangugeModule'] = langugeModule;
+		return map;
+	}
+}
+
+class LangugeDataItemRequest {
+	String? version;
+	String? langugeModule;
+
+	LangugeDataItemRequest({
+		this.version,
+		this.langugeModule,
+	});
+
+	factory LangugeDataItemRequest.fromJson(Map<String, dynamic> map) {
+		return LangugeDataItemRequest( 
+			version: map['Version'],
+			langugeModule: map['LangugeModule'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		if(version != null)
+			map['Version'] = version;
+		if(langugeModule != null)
+			map['LangugeModule'] = langugeModule;
+		return map;
+	}
+}
+
+class LangugeDataRequest extends TokenRequest{
+	String? langugeKey;
+	List<LangugeDataItemRequest>? langugeDataItemList;
+
+	LangugeDataRequest({
+		this.langugeKey,
+		this.langugeDataItemList,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory LangugeDataRequest.fromJson(Map<String, dynamic> map) {
+		return LangugeDataRequest( 
+			langugeKey: map['LangugeKey'],
+			langugeDataItemList: map['LangugeDataItemList'] != null ? (map['LangugeDataItemList'] as List).map((e)=>LangugeDataItemRequest.fromJson(e as Map<String,dynamic>)).toList() : null,
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(langugeKey != null)
+			map['LangugeKey'] = langugeKey;
+		if(langugeDataItemList != null)
+			map['LangugeDataItemList'] = langugeDataItemList;
+		return map;
+	}
+}
+
 

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

@@ -593,10 +593,12 @@ class FindValidPatientsByNameRequest extends TokenRequest{
 class SetValidPatientRequest extends TokenRequest{
 	String? newPatientCode;
 	String? oldPatientCode;
+	bool isFinishExam;
 
 	SetValidPatientRequest({
 		this.newPatientCode,
 		this.oldPatientCode,
+		this.isFinishExam = false,
 		String? token,
 	}) : super(
 			token: token,
@@ -606,6 +608,7 @@ class SetValidPatientRequest extends TokenRequest{
 		return SetValidPatientRequest( 
 			newPatientCode: map['NewPatientCode'],
 			oldPatientCode: map['OldPatientCode'],
+			isFinishExam: map['IsFinishExam'],
 			token: map['Token'],
 		);
 	}
@@ -616,6 +619,7 @@ class SetValidPatientRequest extends TokenRequest{
 			map['NewPatientCode'] = newPatientCode;
 		if(oldPatientCode != null)
 			map['OldPatientCode'] = oldPatientCode;
+		map['IsFinishExam'] = isFinishExam;
 		return map;
 	}
 }

+ 2 - 0
lib/services/recordInfo.m.dart

@@ -68,6 +68,7 @@ class CreateRecordRequest extends TokenRequest{
 
 enum RecordStatusEnum {
 	NotScanned,
+	Uploaded,
 	NotReport,
 	Completed,
 }
@@ -129,6 +130,7 @@ class GetRecordsPageResult {
 enum QueryRecordStatusEnum {
 	All,
 	NotScanned,
+	Uploaded,
 	NotReport,
 	Completed,
 	NotCompleted,

+ 130 - 102
lib/services/remedical.m.dart

@@ -68,17 +68,29 @@ class CreateExaminfoRequest extends TokenRequest{
 	}
 }
 
+enum RemedicalFileDataTypeEnum {
+	VinnoVidSingle,
+	ThirdVidSingle,
+	VinnoVidMovie,
+	ThirdVidMovie,
+	Image,
+}
+
 class UploadExamDataRequest extends TokenRequest{
 	String? examCode;
 	String? previewFileToken;
 	String? fileToken;
+	String? coverImageToken;
 	String? application;
+	RemedicalFileDataTypeEnum fileDataType;
 
 	UploadExamDataRequest({
 		this.examCode,
 		this.previewFileToken,
 		this.fileToken,
+		this.coverImageToken,
 		this.application,
+		this.fileDataType = RemedicalFileDataTypeEnum.VinnoVidSingle,
 		String? token,
 	}) : super(
 			token: token,
@@ -89,7 +101,9 @@ class UploadExamDataRequest extends TokenRequest{
 			examCode: map['ExamCode'],
 			previewFileToken: map['PreviewFileToken'],
 			fileToken: map['FileToken'],
+			coverImageToken: map['CoverImageToken'],
 			application: map['Application'],
+			fileDataType: RemedicalFileDataTypeEnum.values.firstWhere((e) => e.index == map['FileDataType']),
 			token: map['Token'],
 		);
 	}
@@ -102,8 +116,11 @@ class UploadExamDataRequest extends TokenRequest{
 			map['PreviewFileToken'] = previewFileToken;
 		if(fileToken != null)
 			map['FileToken'] = fileToken;
+		if(coverImageToken != null)
+			map['CoverImageToken'] = coverImageToken;
 		if(application != null)
 			map['Application'] = application;
+		map['FileDataType'] = fileDataType.index;
 		return map;
 	}
 }
@@ -111,16 +128,19 @@ class UploadExamDataRequest extends TokenRequest{
 class TerminalImageDTO {
 	String? previewUrl;
 	String? imageUrl;
+	String? coverImageUrl;
 
 	TerminalImageDTO({
 		this.previewUrl,
 		this.imageUrl,
+		this.coverImageUrl,
 	});
 
 	factory TerminalImageDTO.fromJson(Map<String, dynamic> map) {
 		return TerminalImageDTO( 
 			previewUrl: map['PreviewUrl'],
 			imageUrl: map['ImageUrl'],
+			coverImageUrl: map['CoverImageUrl'],
 		);
 	}
 
@@ -130,18 +150,12 @@ class TerminalImageDTO {
 			map['PreviewUrl'] = previewUrl;
 		if(imageUrl != null)
 			map['ImageUrl'] = imageUrl;
+		if(coverImageUrl != null)
+			map['CoverImageUrl'] = coverImageUrl;
 		return map;
 	}
 }
 
-enum RemedicalFileDataTypeEnum {
-	VinnoVidSingle,
-	ThirdVidSingle,
-	VinnoVidMovie,
-	ThirdVidMovie,
-	Image,
-}
-
 enum RemedicalImageLocationTypeEnum {
 	BreastImageLocation,
 	LiverImageLocation,
@@ -523,90 +537,11 @@ class DeviceFinishExamRequest extends TokenRequest{
 	}
 }
 
-enum ThesaurusStatusTypeEnum {
-	Unpublished,
-	Published,
-	Referenced,
-}
-
-enum ThesaurusTypeEnum {
-	Default,
-	Organization,
-	Personal,
-}
-
-enum ThesaurusUsageTypeEnum {
-	People,
-	Animal,
-}
-
-class ThesaurusDTO {
-	String? thesaurusCode;
-	String? thesaurusName;
-	ThesaurusStatusTypeEnum thesaurusStateType;
-	ThesaurusTypeEnum thesaurusType;
-	ThesaurusUsageTypeEnum thesaurusUsageType;
-	String? organizationCode;
-	String? personalCode;
-	String? languageCode;
-	List<String>? thesaurusUser;
-	bool isDefault;
-
-	ThesaurusDTO({
-		this.thesaurusCode,
-		this.thesaurusName,
-		this.thesaurusStateType = ThesaurusStatusTypeEnum.Unpublished,
-		this.thesaurusType = ThesaurusTypeEnum.Default,
-		this.thesaurusUsageType = ThesaurusUsageTypeEnum.People,
-		this.organizationCode,
-		this.personalCode,
-		this.languageCode,
-		this.thesaurusUser,
-		this.isDefault = false,
-	});
-
-	factory ThesaurusDTO.fromJson(Map<String, dynamic> map) {
-		return ThesaurusDTO( 
-			thesaurusCode: map['ThesaurusCode'],
-			thesaurusName: map['ThesaurusName'],
-			thesaurusStateType: ThesaurusStatusTypeEnum.values.firstWhere((e) => e.index == map['ThesaurusStateType']),
-			thesaurusType: ThesaurusTypeEnum.values.firstWhere((e) => e.index == map['ThesaurusType']),
-			thesaurusUsageType: ThesaurusUsageTypeEnum.values.firstWhere((e) => e.index == map['ThesaurusUsageType']),
-			organizationCode: map['OrganizationCode'],
-			personalCode: map['PersonalCode'],
-			languageCode: map['LanguageCode'],
-			thesaurusUser: map['ThesaurusUser'] != null ? map['ThesaurusUser'].cast<String>().toList() : null,
-			isDefault: map['IsDefault'],
-		);
-	}
-
-	Map<String, dynamic> toJson() {
-		final map = Map<String, dynamic>();
-		if(thesaurusCode != null)
-			map['ThesaurusCode'] = thesaurusCode;
-		if(thesaurusName != null)
-			map['ThesaurusName'] = thesaurusName;
-		map['ThesaurusStateType'] = thesaurusStateType.index;
-		map['ThesaurusType'] = thesaurusType.index;
-		map['ThesaurusUsageType'] = thesaurusUsageType.index;
-		if(organizationCode != null)
-			map['OrganizationCode'] = organizationCode;
-		if(personalCode != null)
-			map['PersonalCode'] = personalCode;
-		if(languageCode != null)
-			map['LanguageCode'] = languageCode;
-		if(thesaurusUser != null)
-			map['ThesaurusUser'] = thesaurusUser;
-		map['IsDefault'] = isDefault;
-		return map;
-	}
-}
-
 class AddThesaurusRequest extends TokenRequest{
-	ThesaurusDTO? thesaurus;
+	String? thesaurusName;
 
 	AddThesaurusRequest({
-		this.thesaurus,
+		this.thesaurusName,
 		String? token,
 	}) : super(
 			token: token,
@@ -614,24 +549,26 @@ class AddThesaurusRequest extends TokenRequest{
 
 	factory AddThesaurusRequest.fromJson(Map<String, dynamic> map) {
 		return AddThesaurusRequest( 
-			thesaurus: map['Thesaurus'] != null ? ThesaurusDTO.fromJson(map['Thesaurus']) : null,
+			thesaurusName: map['ThesaurusName'],
 			token: map['Token'],
 		);
 	}
 
 	Map<String, dynamic> toJson() {
 		final map = super.toJson();
-		if(thesaurus != null)
-			map['Thesaurus'] = thesaurus;
+		if(thesaurusName != null)
+			map['ThesaurusName'] = thesaurusName;
 		return map;
 	}
 }
 
 class UpdateThesaurusRequest extends TokenRequest{
-	ThesaurusDTO? thesaurus;
+	String? thesaurusCode;
+	String? thesaurusName;
 
 	UpdateThesaurusRequest({
-		this.thesaurus,
+		this.thesaurusCode,
+		this.thesaurusName,
 		String? token,
 	}) : super(
 			token: token,
@@ -639,15 +576,18 @@ class UpdateThesaurusRequest extends TokenRequest{
 
 	factory UpdateThesaurusRequest.fromJson(Map<String, dynamic> map) {
 		return UpdateThesaurusRequest( 
-			thesaurus: map['Thesaurus'] != null ? ThesaurusDTO.fromJson(map['Thesaurus']) : null,
+			thesaurusCode: map['ThesaurusCode'],
+			thesaurusName: map['ThesaurusName'],
 			token: map['Token'],
 		);
 	}
 
 	Map<String, dynamic> toJson() {
 		final map = super.toJson();
-		if(thesaurus != null)
-			map['Thesaurus'] = thesaurus;
+		if(thesaurusCode != null)
+			map['ThesaurusCode'] = thesaurusCode;
+		if(thesaurusName != null)
+			map['ThesaurusName'] = thesaurusName;
 		return map;
 	}
 }
@@ -1084,14 +1024,87 @@ class DeleteThesaurusUserCodeRequest extends TokenRequest{
 	}
 }
 
+enum ThesaurusStatusTypeEnum {
+	Unpublished,
+	Published,
+}
+
+enum ThesaurusTypeEnum {
+	Default,
+	Organization,
+	Personal,
+}
+
+enum ThesaurusUsageTypeEnum {
+	People,
+	Animal,
+}
+
+class ThesaurusDTO {
+	String? thesaurusCode;
+	String? thesaurusName;
+	ThesaurusStatusTypeEnum thesaurusStateType;
+	ThesaurusTypeEnum thesaurusType;
+	ThesaurusUsageTypeEnum thesaurusUsageType;
+	String? organizationCode;
+	String? personalCode;
+	List<String>? thesaurusUser;
+	bool isDefault;
+
+	ThesaurusDTO({
+		this.thesaurusCode,
+		this.thesaurusName,
+		this.thesaurusStateType = ThesaurusStatusTypeEnum.Unpublished,
+		this.thesaurusType = ThesaurusTypeEnum.Default,
+		this.thesaurusUsageType = ThesaurusUsageTypeEnum.People,
+		this.organizationCode,
+		this.personalCode,
+		this.thesaurusUser,
+		this.isDefault = false,
+	});
+
+	factory ThesaurusDTO.fromJson(Map<String, dynamic> map) {
+		return ThesaurusDTO( 
+			thesaurusCode: map['ThesaurusCode'],
+			thesaurusName: map['ThesaurusName'],
+			thesaurusStateType: ThesaurusStatusTypeEnum.values.firstWhere((e) => e.index == map['ThesaurusStateType']),
+			thesaurusType: ThesaurusTypeEnum.values.firstWhere((e) => e.index == map['ThesaurusType']),
+			thesaurusUsageType: ThesaurusUsageTypeEnum.values.firstWhere((e) => e.index == map['ThesaurusUsageType']),
+			organizationCode: map['OrganizationCode'],
+			personalCode: map['PersonalCode'],
+			thesaurusUser: map['ThesaurusUser'] != null ? map['ThesaurusUser'].cast<String>().toList() : null,
+			isDefault: map['IsDefault'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		if(thesaurusCode != null)
+			map['ThesaurusCode'] = thesaurusCode;
+		if(thesaurusName != null)
+			map['ThesaurusName'] = thesaurusName;
+		map['ThesaurusStateType'] = thesaurusStateType.index;
+		map['ThesaurusType'] = thesaurusType.index;
+		map['ThesaurusUsageType'] = thesaurusUsageType.index;
+		if(organizationCode != null)
+			map['OrganizationCode'] = organizationCode;
+		if(personalCode != null)
+			map['PersonalCode'] = personalCode;
+		if(thesaurusUser != null)
+			map['ThesaurusUser'] = thesaurusUser;
+		map['IsDefault'] = isDefault;
+		return map;
+	}
+}
+
 class GetThesaurusPageRequest extends PageRequest{
 	bool? isDefault;
 	String? userCode;
 	ThesaurusStatusTypeEnum? thesaurusStateType;
 	ThesaurusTypeEnum? thesaurusType;
+	ThesaurusUsageTypeEnum? thesaurusUsageType;
 	String? organizationCode;
 	String? personalCode;
-	String? languageCode;
 	String? thesaurusName;
 
 	GetThesaurusPageRequest({
@@ -1099,9 +1112,9 @@ class GetThesaurusPageRequest extends PageRequest{
 		this.userCode,
 		this.thesaurusStateType,
 		this.thesaurusType,
+		this.thesaurusUsageType,
 		this.organizationCode,
 		this.personalCode,
-		this.languageCode,
 		this.thesaurusName,
 		int pageIndex = 0,
 		int pageSize = 0,
@@ -1118,9 +1131,9 @@ class GetThesaurusPageRequest extends PageRequest{
 			userCode: map['UserCode'],
 			thesaurusStateType: map['ThesaurusStateType'] != null ? ThesaurusStatusTypeEnum.values.firstWhere((e) => e.index == map['ThesaurusStateType']) : null,
 			thesaurusType: map['ThesaurusType'] != null ? ThesaurusTypeEnum.values.firstWhere((e) => e.index == map['ThesaurusType']) : null,
+			thesaurusUsageType: map['ThesaurusUsageType'] != null ? ThesaurusUsageTypeEnum.values.firstWhere((e) => e.index == map['ThesaurusUsageType']) : null,
 			organizationCode: map['OrganizationCode'],
 			personalCode: map['PersonalCode'],
-			languageCode: map['LanguageCode'],
 			thesaurusName: map['ThesaurusName'],
 			pageIndex: map['PageIndex'],
 			pageSize: map['PageSize'],
@@ -1138,12 +1151,12 @@ class GetThesaurusPageRequest extends PageRequest{
 			map['ThesaurusStateType'] = thesaurusStateType;
 		if(thesaurusType != null)
 			map['ThesaurusType'] = thesaurusType;
+		if(thesaurusUsageType != null)
+			map['ThesaurusUsageType'] = thesaurusUsageType;
 		if(organizationCode != null)
 			map['OrganizationCode'] = organizationCode;
 		if(personalCode != null)
 			map['PersonalCode'] = personalCode;
-		if(languageCode != null)
-			map['LanguageCode'] = languageCode;
 		if(thesaurusName != null)
 			map['ThesaurusName'] = thesaurusName;
 		return map;
@@ -1206,9 +1219,11 @@ class ThesaurusItemDTO {
 
 class GetThesaurusItemsRequest extends TokenRequest{
 	String? thesaurusCode;
+	String? keyword;
 
 	GetThesaurusItemsRequest({
 		this.thesaurusCode,
+		this.keyword,
 		String? token,
 	}) : super(
 			token: token,
@@ -1217,6 +1232,7 @@ class GetThesaurusItemsRequest extends TokenRequest{
 	factory GetThesaurusItemsRequest.fromJson(Map<String, dynamic> map) {
 		return GetThesaurusItemsRequest( 
 			thesaurusCode: map['ThesaurusCode'],
+			keyword: map['Keyword'],
 			token: map['Token'],
 		);
 	}
@@ -1225,6 +1241,8 @@ class GetThesaurusItemsRequest extends TokenRequest{
 		final map = super.toJson();
 		if(thesaurusCode != null)
 			map['ThesaurusCode'] = thesaurusCode;
+		if(keyword != null)
+			map['Keyword'] = keyword;
 		return map;
 	}
 }
@@ -1262,10 +1280,12 @@ class GetThesaurusItemByCodeRequest extends TokenRequest{
 class GetThesaurusClassifyByParentCodeRequest extends TokenRequest{
 	String? thesaurusCode;
 	String? parentItemCode;
+	String? keyword;
 
 	GetThesaurusClassifyByParentCodeRequest({
 		this.thesaurusCode,
 		this.parentItemCode,
+		this.keyword,
 		String? token,
 	}) : super(
 			token: token,
@@ -1275,6 +1295,7 @@ class GetThesaurusClassifyByParentCodeRequest extends TokenRequest{
 		return GetThesaurusClassifyByParentCodeRequest( 
 			thesaurusCode: map['ThesaurusCode'],
 			parentItemCode: map['ParentItemCode'],
+			keyword: map['Keyword'],
 			token: map['Token'],
 		);
 	}
@@ -1285,6 +1306,8 @@ class GetThesaurusClassifyByParentCodeRequest extends TokenRequest{
 			map['ThesaurusCode'] = thesaurusCode;
 		if(parentItemCode != null)
 			map['ParentItemCode'] = parentItemCode;
+		if(keyword != null)
+			map['Keyword'] = keyword;
 		return map;
 	}
 }
@@ -1292,10 +1315,12 @@ class GetThesaurusClassifyByParentCodeRequest extends TokenRequest{
 class GetThesaurusContentByParentCodeRequest extends TokenRequest{
 	String? thesaurusCode;
 	String? parentItemCode;
+	String? keyword;
 
 	GetThesaurusContentByParentCodeRequest({
 		this.thesaurusCode,
 		this.parentItemCode,
+		this.keyword,
 		String? token,
 	}) : super(
 			token: token,
@@ -1305,6 +1330,7 @@ class GetThesaurusContentByParentCodeRequest extends TokenRequest{
 		return GetThesaurusContentByParentCodeRequest( 
 			thesaurusCode: map['ThesaurusCode'],
 			parentItemCode: map['ParentItemCode'],
+			keyword: map['Keyword'],
 			token: map['Token'],
 		);
 	}
@@ -1315,6 +1341,8 @@ class GetThesaurusContentByParentCodeRequest extends TokenRequest{
 			map['ThesaurusCode'] = thesaurusCode;
 		if(parentItemCode != null)
 			map['ParentItemCode'] = parentItemCode;
+		if(keyword != null)
+			map['Keyword'] = keyword;
 		return map;
 	}
 }

+ 54 - 7
lib/services/report.dart

@@ -21,17 +21,11 @@ class ReportService extends JsonRpcClientBase {
 						timeout: timeout,
 				) {
 		/// 注册响应实体反序列化处理器
-		FJsonConvert.setDecoder((map) => PageResult<ReportTemplateDTO>.fromJson(map));
 		FJsonConvert.setDecoder((map) => ReportTemplateDTO.fromJson(map));
 		FJsonConvert.setDecoder((map) => ReportDTO.fromJson(map));
 		FJsonConvert.setDecoder((map) => ReportLabelDTO.fromJson(map));
 		FJsonConvert.setDecoder((map) => ShareDTO.fromJson(map));
-	}
-
-	Future<PageResult<ReportTemplateDTO>> findReportTemplateByPageAsync(FindReportTemplateByPageRequest request) async {
-		var rpcRst = await call("FindReportTemplateByPageAsync", request);
-		var result = PageResult<ReportTemplateDTO>.fromJson(rpcRst as Map<String, dynamic>);
-		return result;
+		FJsonConvert.setDecoder((map) => PageResult<ReportTemplateDTO>.fromJson(map));
 	}
 
 	Future<ReportTemplateDTO> findReportTemplateByCodeAsync(FindReportTemplateByCodeRequest request) async {
@@ -52,6 +46,12 @@ class ReportService extends JsonRpcClientBase {
 		return result;
 	}
 
+	Future<List<ReportDTO>> findPatientReportsAsync(FindPatientReportsRequest request) async {
+		var rpcRst = await call("FindPatientReportsAsync", request);
+		var result = (rpcRst as List).map((e)=>ReportDTO.fromJson(e as Map<String, dynamic>)).toList();
+		return result;
+	}
+
 	Future<List<ReportLabelDTO>> findReportLabelsAsync(FindReportLabelsRequest request) async {
 		var rpcRst = await call("FindReportLabelsAsync", request);
 		var result = (rpcRst as List).map((e)=>ReportLabelDTO.fromJson(e as Map<String, dynamic>)).toList();
@@ -89,5 +89,52 @@ class ReportService extends JsonRpcClientBase {
 		return rpcRst;
 	}
 
+	Future<bool> copyPersonalReportTemplateAsync(CopyReportTemplateRequest request) async {
+		var rpcRst = await call("CopyPersonalReportTemplateAsync", request);
+		return rpcRst;
+	}
+
+	Future<bool> copyOrgReportTemplateAsync(CopyOrgReportTemplateRequest request) async {
+		var rpcRst = await call("CopyOrgReportTemplateAsync", request);
+		return rpcRst;
+	}
+
+	Future<PageResult<ReportTemplateDTO>> getReportTemplatePageAsync(FindReportTemplatePagesRequest request) async {
+		var rpcRst = await call("GetReportTemplatePageAsync", request);
+		var result = PageResult<ReportTemplateDTO>.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
+	Future<PageResult<ReportTemplateDTO>> getOrgReportTemplatePageAsync(FindReportTemplatePagesRequest request) async {
+		var rpcRst = await call("GetOrgReportTemplatePageAsync", request);
+		var result = PageResult<ReportTemplateDTO>.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
+	Future<bool> addReportTemplateAsync(AddReportTemplateRequest request) async {
+		var rpcRst = await call("AddReportTemplateAsync", request);
+		return rpcRst;
+	}
+
+	Future<bool> updateReportTemplateAsync(UpdateReportTemplateRequest request) async {
+		var rpcRst = await call("UpdateReportTemplateAsync", request);
+		return rpcRst;
+	}
+
+	Future<bool> removeReportTemplateAsync(RemoveReportTemplateRequest request) async {
+		var rpcRst = await call("RemoveReportTemplateAsync", request);
+		return rpcRst;
+	}
+
+	Future<bool> addOrgReportTemplateAsync(AddReportTemplateRequest request) async {
+		var rpcRst = await call("AddOrgReportTemplateAsync", request);
+		return rpcRst;
+	}
+
+	Future<bool> removeOrgReportTemplateAsync(RemoveReportTemplateRequest request) async {
+		var rpcRst = await call("RemoveOrgReportTemplateAsync", request);
+		return rpcRst;
+	}
+
 }
 

+ 196 - 42
lib/services/report.m.dart

@@ -1,7 +1,7 @@
-import 'patient.m.dart';
 import 'authentication.m.dart';
-import 'device.m.dart';
 import 'connect.m.dart';
+import 'patient.m.dart';
+import 'device.m.dart';
 
 import 'package:fis_jsonrpc/utils.dart';
 
@@ -61,7 +61,6 @@ class ReportTemplateDTO {
 	ReportTemplateUsageTypeEnum reportTemplateUsageType;
 	String? organizationCode;
 	String? personalCode;
-	String? languageCode;
 	List<ReportTemplateItemDTO>? reportTemplateItems;
 	List<String>? reportTemplateUser;
 	bool isDefault;
@@ -74,7 +73,6 @@ class ReportTemplateDTO {
 		this.reportTemplateUsageType = ReportTemplateUsageTypeEnum.People,
 		this.organizationCode,
 		this.personalCode,
-		this.languageCode,
 		this.reportTemplateItems,
 		this.reportTemplateUser,
 		this.isDefault = false,
@@ -89,7 +87,6 @@ class ReportTemplateDTO {
 			reportTemplateUsageType: ReportTemplateUsageTypeEnum.values.firstWhere((e) => e.index == map['ReportTemplateUsageType']),
 			organizationCode: map['OrganizationCode'],
 			personalCode: map['PersonalCode'],
-			languageCode: map['LanguageCode'],
 			reportTemplateItems: map['ReportTemplateItems'] != null ? (map['ReportTemplateItems'] as List).map((e)=>ReportTemplateItemDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
 			reportTemplateUser: map['ReportTemplateUser'] != null ? map['ReportTemplateUser'].cast<String>().toList() : null,
 			isDefault: map['IsDefault'],
@@ -109,8 +106,6 @@ class ReportTemplateDTO {
 			map['OrganizationCode'] = organizationCode;
 		if(personalCode != null)
 			map['PersonalCode'] = personalCode;
-		if(languageCode != null)
-			map['LanguageCode'] = languageCode;
 		if(reportTemplateItems != null)
 			map['ReportTemplateItems'] = reportTemplateItems;
 		if(reportTemplateUser != null)
@@ -120,41 +115,6 @@ class ReportTemplateDTO {
 	}
 }
 
-class FindReportTemplateByPageRequest extends PageRequest{
-	String? reportTemplateName;
-	bool containContent;
-
-	FindReportTemplateByPageRequest({
-		this.reportTemplateName,
-		this.containContent = false,
-		int pageIndex = 0,
-		int pageSize = 0,
-		String? token,
-	}) : super(
-			pageIndex: pageIndex,
-			pageSize: pageSize,
-			token: token,
-		);
-
-	factory FindReportTemplateByPageRequest.fromJson(Map<String, dynamic> map) {
-		return FindReportTemplateByPageRequest( 
-			reportTemplateName: map['ReportTemplateName'],
-			containContent: map['ContainContent'],
-			pageIndex: map['PageIndex'],
-			pageSize: map['PageSize'],
-			token: map['Token'],
-		);
-	}
-
-	Map<String, dynamic> toJson() {
-		final map = super.toJson();
-		if(reportTemplateName != null)
-			map['ReportTemplateName'] = reportTemplateName;
-		map['ContainContent'] = containContent;
-		return map;
-	}
-}
-
 class FindReportTemplateByCodeRequest extends TokenRequest{
 	String? reportTemplateCode;
 
@@ -185,6 +145,7 @@ class ReportBaseDTO extends BaseDTO{
 	String? recordCode;
 	String? reportUserCode;
 	String? deviceCode;
+	String? patientCode;
 	String? patientId;
 	List<String>? reportLabels;
 	List<String>? platformLabels;
@@ -198,6 +159,7 @@ class ReportBaseDTO extends BaseDTO{
 		this.recordCode,
 		this.reportUserCode,
 		this.deviceCode,
+		this.patientCode,
 		this.patientId,
 		this.reportLabels,
 		this.platformLabels,
@@ -218,6 +180,7 @@ class ReportBaseDTO extends BaseDTO{
 			recordCode: map['RecordCode'],
 			reportUserCode: map['ReportUserCode'],
 			deviceCode: map['DeviceCode'],
+			patientCode: map['PatientCode'],
 			patientId: map['PatientId'],
 			reportLabels: map['ReportLabels'] != null ? map['ReportLabels'].cast<String>().toList() : null,
 			platformLabels: map['PlatformLabels'] != null ? map['PlatformLabels'].cast<String>().toList() : null,
@@ -240,6 +203,8 @@ class ReportBaseDTO extends BaseDTO{
 			map['ReportUserCode'] = reportUserCode;
 		if(deviceCode != null)
 			map['DeviceCode'] = deviceCode;
+		if(patientCode != null)
+			map['PatientCode'] = patientCode;
 		if(patientId != null)
 			map['PatientId'] = patientId;
 		if(reportLabels != null)
@@ -269,6 +234,7 @@ class ReportDTO extends ReportBaseDTO{
 		String? recordCode,
 		String? reportUserCode,
 		String? deviceCode,
+		String? patientCode,
 		String? patientId,
 		List<String>? reportLabels,
 		List<String>? platformLabels,
@@ -283,6 +249,7 @@ class ReportDTO extends ReportBaseDTO{
 			recordCode: recordCode,
 			reportUserCode: reportUserCode,
 			deviceCode: deviceCode,
+			patientCode: patientCode,
 			patientId: patientId,
 			reportLabels: reportLabels,
 			platformLabels: platformLabels,
@@ -302,6 +269,7 @@ class ReportDTO extends ReportBaseDTO{
 			recordCode: map['RecordCode'],
 			reportUserCode: map['ReportUserCode'],
 			deviceCode: map['DeviceCode'],
+			patientCode: map['PatientCode'],
 			patientId: map['PatientId'],
 			reportLabels: map['ReportLabels'] != null ? map['ReportLabels'].cast<String>().toList() : null,
 			platformLabels: map['PlatformLabels'] != null ? map['PlatformLabels'].cast<String>().toList() : null,
@@ -374,6 +342,31 @@ class FindExamReportsRequest extends TokenRequest{
 	}
 }
 
+class FindPatientReportsRequest extends TokenRequest{
+	String? patientCode;
+
+	FindPatientReportsRequest({
+		this.patientCode,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory FindPatientReportsRequest.fromJson(Map<String, dynamic> map) {
+		return FindPatientReportsRequest( 
+			patientCode: map['PatientCode'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(patientCode != null)
+			map['PatientCode'] = patientCode;
+		return map;
+	}
+}
+
 enum ReportLabelUsageTypeEnum {
 	People,
 	Animal,
@@ -706,4 +699,165 @@ class ShareReportByEmailRequest extends TokenRequest{
 	}
 }
 
+class CopyReportTemplateRequest extends TokenRequest{
+	String? reportTemplateCode;
+
+	CopyReportTemplateRequest({
+		this.reportTemplateCode,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory CopyReportTemplateRequest.fromJson(Map<String, dynamic> map) {
+		return CopyReportTemplateRequest( 
+			reportTemplateCode: map['ReportTemplateCode'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(reportTemplateCode != null)
+			map['ReportTemplateCode'] = reportTemplateCode;
+		return map;
+	}
+}
+
+class CopyOrgReportTemplateRequest extends TokenRequest{
+	String? reportTemplateCode;
+
+	CopyOrgReportTemplateRequest({
+		this.reportTemplateCode,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory CopyOrgReportTemplateRequest.fromJson(Map<String, dynamic> map) {
+		return CopyOrgReportTemplateRequest( 
+			reportTemplateCode: map['ReportTemplateCode'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(reportTemplateCode != null)
+			map['ReportTemplateCode'] = reportTemplateCode;
+		return map;
+	}
+}
+
+class FindReportTemplatePagesRequest extends PageRequest{
+	String? reportTemplateName;
+
+	FindReportTemplatePagesRequest({
+		this.reportTemplateName,
+		int pageIndex = 0,
+		int pageSize = 0,
+		String? token,
+	}) : super(
+			pageIndex: pageIndex,
+			pageSize: pageSize,
+			token: token,
+		);
+
+	factory FindReportTemplatePagesRequest.fromJson(Map<String, dynamic> map) {
+		return FindReportTemplatePagesRequest( 
+			reportTemplateName: map['ReportTemplateName'],
+			pageIndex: map['PageIndex'],
+			pageSize: map['PageSize'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(reportTemplateName != null)
+			map['ReportTemplateName'] = reportTemplateName;
+		return map;
+	}
+}
+
+class AddReportTemplateRequest extends TokenRequest{
+	String? reportTemplateName;
+
+	AddReportTemplateRequest({
+		this.reportTemplateName,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory AddReportTemplateRequest.fromJson(Map<String, dynamic> map) {
+		return AddReportTemplateRequest( 
+			reportTemplateName: map['ReportTemplateName'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(reportTemplateName != null)
+			map['ReportTemplateName'] = reportTemplateName;
+		return map;
+	}
+}
+
+class UpdateReportTemplateRequest extends TokenRequest{
+	String? reportTemplateCode;
+	String? reportTemplateName;
+
+	UpdateReportTemplateRequest({
+		this.reportTemplateCode,
+		this.reportTemplateName,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory UpdateReportTemplateRequest.fromJson(Map<String, dynamic> map) {
+		return UpdateReportTemplateRequest( 
+			reportTemplateCode: map['ReportTemplateCode'],
+			reportTemplateName: map['ReportTemplateName'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(reportTemplateCode != null)
+			map['ReportTemplateCode'] = reportTemplateCode;
+		if(reportTemplateName != null)
+			map['ReportTemplateName'] = reportTemplateName;
+		return map;
+	}
+}
+
+class RemoveReportTemplateRequest extends TokenRequest{
+	String? reportTemplateCode;
+
+	RemoveReportTemplateRequest({
+		this.reportTemplateCode,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory RemoveReportTemplateRequest.fromJson(Map<String, dynamic> map) {
+		return RemoveReportTemplateRequest( 
+			reportTemplateCode: map['ReportTemplateCode'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(reportTemplateCode != null)
+			map['ReportTemplateCode'] = reportTemplateCode;
+		return map;
+	}
+}
+
 

+ 4 - 2
lib/services/vidProcess.dart

@@ -20,6 +20,7 @@ class VidProcessService extends JsonRpcClientBase {
 				) {
 		/// 注册响应实体反序列化处理器
 		FJsonConvert.setDecoder((map) => VidProcessResult.fromJson(map));
+		FJsonConvert.setDecoder((map) => GetThumbnailResult.fromJson(map));
 	}
 
 	Future<VidProcessResult> convertToImageDataAsync(ConvertToImageDataRequest request) async {
@@ -28,9 +29,10 @@ class VidProcessService extends JsonRpcClientBase {
 		return result;
 	}
 
-	Future<String> getThumbnailAsync(GetThumbnailRequest request) async {
+	Future<GetThumbnailResult> getThumbnailAsync(GetThumbnailRequest request) async {
 		var rpcRst = await call("GetThumbnailAsync", request);
-		return rpcRst;
+		var result = GetThumbnailResult.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
 	}
 
 }

+ 30 - 0
lib/services/vidProcess.m.dart

@@ -84,13 +84,41 @@ class ConvertToImageDataRequest extends VidFileTokenRequest{
 	}
 }
 
+class GetThumbnailResult {
+	String? thumbnailUrl;
+	String? coverImgUrl;
+
+	GetThumbnailResult({
+		this.thumbnailUrl,
+		this.coverImgUrl,
+	});
+
+	factory GetThumbnailResult.fromJson(Map<String, dynamic> map) {
+		return GetThumbnailResult( 
+			thumbnailUrl: map['ThumbnailUrl'],
+			coverImgUrl: map['CoverImgUrl'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		if(thumbnailUrl != null)
+			map['ThumbnailUrl'] = thumbnailUrl;
+		if(coverImgUrl != null)
+			map['CoverImgUrl'] = coverImgUrl;
+		return map;
+	}
+}
+
 class GetThumbnailRequest extends VidFileTokenRequest{
 	int height;
 	int quality;
+	bool isNeedCoverImg;
 
 	GetThumbnailRequest({
 		this.height = 0,
 		this.quality = 0,
+		this.isNeedCoverImg = false,
 		String? fileToken,
 	}) : super(
 			fileToken: fileToken,
@@ -100,6 +128,7 @@ class GetThumbnailRequest extends VidFileTokenRequest{
 		return GetThumbnailRequest( 
 			height: map['Height'],
 			quality: map['Quality'],
+			isNeedCoverImg: map['IsNeedCoverImg'],
 			fileToken: map['FileToken'],
 		);
 	}
@@ -108,6 +137,7 @@ class GetThumbnailRequest extends VidFileTokenRequest{
 		final map = super.toJson();
 		map['Height'] = height;
 		map['Quality'] = quality;
+		map['IsNeedCoverImg'] = isNeedCoverImg;
 		return map;
 	}
 }