Browse Source

同步Server最新接口

loki.wu 2 years ago
parent
commit
5f00806b38

+ 1 - 0
lib/services/index.dart

@@ -34,6 +34,7 @@ export 'rank.m.dart';
 export 'recordInfo.m.dart';
 export 'region.m.dart';
 export 'remedical.m.dart';
+export 'report.m.dart';
 export 'role.m.dart';
 export 'storage.m.dart';
 export 'user.m.dart';

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

@@ -111,6 +111,7 @@ class PatientInfoBaseDTO extends BaseDTO{
 	List<DataItemDTO>? patientData;
 	int unReadRecordCount;
 	String? headImgUrl;
+	String? patientType;
 
 	PatientInfoBaseDTO({
 		this.patientCode,
@@ -126,6 +127,7 @@ class PatientInfoBaseDTO extends BaseDTO{
 		this.patientData,
 		this.unReadRecordCount = 0,
 		this.headImgUrl,
+		this.patientType,
 		DateTime? createTime,
 		DateTime? updateTime,
 	}) : super(
@@ -148,6 +150,7 @@ class PatientInfoBaseDTO extends BaseDTO{
 			patientData: map['PatientData'] != null ? (map['PatientData'] as List).map((e)=>DataItemDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
 			unReadRecordCount: map['UnReadRecordCount'],
 			headImgUrl: map['HeadImgUrl'],
+			patientType: map['PatientType'],
 			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
 			updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
 		);
@@ -178,6 +181,8 @@ class PatientInfoBaseDTO extends BaseDTO{
 		map['UnReadRecordCount'] = unReadRecordCount;
 		if(headImgUrl != null)
 			map['HeadImgUrl'] = headImgUrl;
+		if(patientType != null)
+			map['PatientType'] = patientType;
 		return map;
 	}
 }
@@ -202,6 +207,7 @@ class PatientInfoDTO extends PatientInfoBaseDTO{
 		List<DataItemDTO>? patientData,
 		int unReadRecordCount = 0,
 		String? headImgUrl,
+		String? patientType,
 		DateTime? createTime,
 		DateTime? updateTime,
 	}) : super(
@@ -218,6 +224,7 @@ class PatientInfoDTO extends PatientInfoBaseDTO{
 			patientData: patientData,
 			unReadRecordCount: unReadRecordCount,
 			headImgUrl: headImgUrl,
+			patientType: patientType,
 			createTime: createTime,
 			updateTime: updateTime,
 		);
@@ -239,6 +246,7 @@ class PatientInfoDTO extends PatientInfoBaseDTO{
 			patientData: map['PatientData'] != null ? (map['PatientData'] as List).map((e)=>DataItemDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
 			unReadRecordCount: map['UnReadRecordCount'],
 			headImgUrl: map['HeadImgUrl'],
+			patientType: map['PatientType'],
 			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
 			updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
 		);

+ 5 - 0
lib/services/remedical.dart

@@ -99,6 +99,11 @@ class RemedicalService extends JsonRpcClientBase {
 		return rpcRst;
 	}
 
+	Future<bool> updateThesaurusAsync(UpdateThesaurusRequest request) async {
+		var rpcRst = await call("UpdateThesaurusAsync", request);
+		return rpcRst;
+	}
+
 	Future<bool> addOrgThesaurusAsync(AddThesaurusRequest request) async {
 		var rpcRst = await call("AddOrgThesaurusAsync", request);
 		return rpcRst;

+ 25 - 5
lib/services/remedical.m.dart

@@ -73,14 +73,12 @@ class UploadExamDataRequest extends TokenRequest{
 	String? previewFileToken;
 	String? fileToken;
 	String? application;
-	String? patientScanType;
 
 	UploadExamDataRequest({
 		this.examCode,
 		this.previewFileToken,
 		this.fileToken,
 		this.application,
-		this.patientScanType,
 		String? token,
 	}) : super(
 			token: token,
@@ -92,7 +90,6 @@ class UploadExamDataRequest extends TokenRequest{
 			previewFileToken: map['PreviewFileToken'],
 			fileToken: map['FileToken'],
 			application: map['Application'],
-			patientScanType: map['PatientScanType'],
 			token: map['Token'],
 		);
 	}
@@ -107,8 +104,6 @@ class UploadExamDataRequest extends TokenRequest{
 			map['FileToken'] = fileToken;
 		if(application != null)
 			map['Application'] = application;
-		if(patientScanType != null)
-			map['PatientScanType'] = patientScanType;
 		return map;
 	}
 }
@@ -632,6 +627,31 @@ class AddThesaurusRequest extends TokenRequest{
 	}
 }
 
+class UpdateThesaurusRequest extends TokenRequest{
+	ThesaurusDTO? thesaurus;
+
+	UpdateThesaurusRequest({
+		this.thesaurus,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory UpdateThesaurusRequest.fromJson(Map<String, dynamic> map) {
+		return UpdateThesaurusRequest( 
+			thesaurus: map['Thesaurus'] != null ? ThesaurusDTO.fromJson(map['Thesaurus']) : null,
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(thesaurus != null)
+			map['Thesaurus'] = thesaurus;
+		return map;
+	}
+}
+
 class AddThesaurusClassifyRequest extends TokenRequest{
 	String? thesaurusCode;
 	String? thesaurusItemName;

+ 73 - 1
lib/services/report.dart

@@ -1,7 +1,11 @@
 import 'dart:core';
 
 import 'package:fis_jsonrpc/client_base.dart';
+import 'package:fis_common/json_convert.dart';
 
+import 'report.m.dart';
+
+import 'patient.m.dart';
 
 
 class ReportService extends JsonRpcClientBase {
@@ -15,7 +19,75 @@ class ReportService extends JsonRpcClientBase {
 						serviceName,
 						headers: headers,
 						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;
+	}
+
+	Future<ReportTemplateDTO> findReportTemplateByCodeAsync(FindReportTemplateByCodeRequest request) async {
+		var rpcRst = await call("FindReportTemplateByCodeAsync", request);
+		var result = ReportTemplateDTO.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
+	Future<ReportDTO> findReportByCodeAsync(FindReportByCodeRequest request) async {
+		var rpcRst = await call("FindReportByCodeAsync", request);
+		var result = ReportDTO.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
+	Future<List<ReportDTO>> findExamReportsAsync(FindExamReportsRequest request) async {
+		var rpcRst = await call("FindExamReportsAsync", 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();
+		return result;
+	}
+
+	Future<ShareDTO> findShareContentAsync(FindShareContentRequest request) async {
+		var rpcRst = await call("FindShareContentAsync", request);
+		var result = ShareDTO.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
+	Future<bool> addReportAsync(AddReportRequest request) async {
+		var rpcRst = await call("AddReportAsync", request);
+		return rpcRst;
+	}
+
+	Future<bool> modifyReportAsync(ModifyReportRequest request) async {
+		var rpcRst = await call("ModifyReportAsync", request);
+		return rpcRst;
+	}
+
+	Future<bool> modifyReportLabelsAsync(ModifyReportLabelsRequest request) async {
+		var rpcRst = await call("ModifyReportLabelsAsync", request);
+		return rpcRst;
+	}
+
+	Future<bool> shareReportBySmsAsync(ShareReportBySmsRequest request) async {
+		var rpcRst = await call("ShareReportBySmsAsync", request);
+		return rpcRst;
+	}
+
+	Future<bool> shareReportByEmailAsync(ShareReportByEmailRequest request) async {
+		var rpcRst = await call("ShareReportByEmailAsync", request);
+		return rpcRst;
+	}
 
 }
 

+ 709 - 0
lib/services/report.m.dart

@@ -0,0 +1,709 @@
+import 'patient.m.dart';
+import 'authentication.m.dart';
+import 'device.m.dart';
+import 'connect.m.dart';
+
+import 'package:fis_jsonrpc/utils.dart';
+
+enum ReportTemplateStatusTypeEnum {
+	Unpublished,
+	Published,
+	Referenced,
+}
+
+enum ReportTemplateTypeEnum {
+	Default,
+	Organization,
+	Personal,
+}
+
+enum ReportTemplateUsageTypeEnum {
+	People,
+	Animal,
+}
+
+class ReportTemplateItemDTO {
+	String? reportTemplateItemCode;
+	String? reportTemplateItemName;
+	String? reportTemplateItemJson;
+
+	ReportTemplateItemDTO({
+		this.reportTemplateItemCode,
+		this.reportTemplateItemName,
+		this.reportTemplateItemJson,
+	});
+
+	factory ReportTemplateItemDTO.fromJson(Map<String, dynamic> map) {
+		return ReportTemplateItemDTO( 
+			reportTemplateItemCode: map['ReportTemplateItemCode'],
+			reportTemplateItemName: map['ReportTemplateItemName'],
+			reportTemplateItemJson: map['ReportTemplateItemJson'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		if(reportTemplateItemCode != null)
+			map['ReportTemplateItemCode'] = reportTemplateItemCode;
+		if(reportTemplateItemName != null)
+			map['ReportTemplateItemName'] = reportTemplateItemName;
+		if(reportTemplateItemJson != null)
+			map['ReportTemplateItemJson'] = reportTemplateItemJson;
+		return map;
+	}
+}
+
+class ReportTemplateDTO {
+	String? reportTemplateCode;
+	String? reportTemplateName;
+	ReportTemplateStatusTypeEnum reportTemplateStateType;
+	ReportTemplateTypeEnum reportTemplateType;
+	ReportTemplateUsageTypeEnum reportTemplateUsageType;
+	String? organizationCode;
+	String? personalCode;
+	String? languageCode;
+	List<ReportTemplateItemDTO>? reportTemplateItems;
+	List<String>? reportTemplateUser;
+	bool isDefault;
+
+	ReportTemplateDTO({
+		this.reportTemplateCode,
+		this.reportTemplateName,
+		this.reportTemplateStateType = ReportTemplateStatusTypeEnum.Unpublished,
+		this.reportTemplateType = ReportTemplateTypeEnum.Default,
+		this.reportTemplateUsageType = ReportTemplateUsageTypeEnum.People,
+		this.organizationCode,
+		this.personalCode,
+		this.languageCode,
+		this.reportTemplateItems,
+		this.reportTemplateUser,
+		this.isDefault = false,
+	});
+
+	factory ReportTemplateDTO.fromJson(Map<String, dynamic> map) {
+		return ReportTemplateDTO( 
+			reportTemplateCode: map['ReportTemplateCode'],
+			reportTemplateName: map['ReportTemplateName'],
+			reportTemplateStateType: ReportTemplateStatusTypeEnum.values.firstWhere((e) => e.index == map['ReportTemplateStateType']),
+			reportTemplateType: ReportTemplateTypeEnum.values.firstWhere((e) => e.index == map['ReportTemplateType']),
+			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'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		if(reportTemplateCode != null)
+			map['ReportTemplateCode'] = reportTemplateCode;
+		if(reportTemplateName != null)
+			map['ReportTemplateName'] = reportTemplateName;
+		map['ReportTemplateStateType'] = reportTemplateStateType.index;
+		map['ReportTemplateType'] = reportTemplateType.index;
+		map['ReportTemplateUsageType'] = reportTemplateUsageType.index;
+		if(organizationCode != null)
+			map['OrganizationCode'] = organizationCode;
+		if(personalCode != null)
+			map['PersonalCode'] = personalCode;
+		if(languageCode != null)
+			map['LanguageCode'] = languageCode;
+		if(reportTemplateItems != null)
+			map['ReportTemplateItems'] = reportTemplateItems;
+		if(reportTemplateUser != null)
+			map['ReportTemplateUser'] = reportTemplateUser;
+		map['IsDefault'] = isDefault;
+		return map;
+	}
+}
+
+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;
+
+	FindReportTemplateByCodeRequest({
+		this.reportTemplateCode,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory FindReportTemplateByCodeRequest.fromJson(Map<String, dynamic> map) {
+		return FindReportTemplateByCodeRequest( 
+			reportTemplateCode: map['ReportTemplateCode'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(reportTemplateCode != null)
+			map['ReportTemplateCode'] = reportTemplateCode;
+		return map;
+	}
+}
+
+class ReportBaseDTO extends BaseDTO{
+	String? reportCode;
+	String? recordCode;
+	String? reportUserCode;
+	String? deviceCode;
+	String? patientId;
+	List<String>? reportLabels;
+	List<String>? platformLabels;
+	List<String>? diagnosisLabels;
+	String? reportOrgan;
+	DateTime? reportTime;
+	String? reportUserName;
+
+	ReportBaseDTO({
+		this.reportCode,
+		this.recordCode,
+		this.reportUserCode,
+		this.deviceCode,
+		this.patientId,
+		this.reportLabels,
+		this.platformLabels,
+		this.diagnosisLabels,
+		this.reportOrgan,
+		this.reportTime,
+		this.reportUserName,
+		DateTime? createTime,
+		DateTime? updateTime,
+	}) : super(
+			createTime: createTime,
+			updateTime: updateTime,
+		);
+
+	factory ReportBaseDTO.fromJson(Map<String, dynamic> map) {
+		return ReportBaseDTO( 
+			reportCode: map['ReportCode'],
+			recordCode: map['RecordCode'],
+			reportUserCode: map['ReportUserCode'],
+			deviceCode: map['DeviceCode'],
+			patientId: map['PatientId'],
+			reportLabels: map['ReportLabels'] != null ? map['ReportLabels'].cast<String>().toList() : null,
+			platformLabels: map['PlatformLabels'] != null ? map['PlatformLabels'].cast<String>().toList() : null,
+			diagnosisLabels: map['DiagnosisLabels'] != null ? map['DiagnosisLabels'].cast<String>().toList() : null,
+			reportOrgan: map['ReportOrgan'],
+			reportTime: map['ReportTime'] != null ? DateTime.parse(map['ReportTime']) : null,
+			reportUserName: map['ReportUserName'],
+			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(reportCode != null)
+			map['ReportCode'] = reportCode;
+		if(recordCode != null)
+			map['RecordCode'] = recordCode;
+		if(reportUserCode != null)
+			map['ReportUserCode'] = reportUserCode;
+		if(deviceCode != null)
+			map['DeviceCode'] = deviceCode;
+		if(patientId != null)
+			map['PatientId'] = patientId;
+		if(reportLabels != null)
+			map['ReportLabels'] = reportLabels;
+		if(platformLabels != null)
+			map['PlatformLabels'] = platformLabels;
+		if(diagnosisLabels != null)
+			map['DiagnosisLabels'] = diagnosisLabels;
+		if(reportOrgan != null)
+			map['ReportOrgan'] = reportOrgan;
+		if(reportTime != null)
+			map['ReportTime'] = JsonRpcUtils.dateFormat(reportTime!);
+		if(reportUserName != null)
+			map['ReportUserName'] = reportUserName;
+		return map;
+	}
+}
+
+class ReportDTO extends ReportBaseDTO{
+	String? reportTemplateJson;
+	String? reportDatasJson;
+
+	ReportDTO({
+		this.reportTemplateJson,
+		this.reportDatasJson,
+		String? reportCode,
+		String? recordCode,
+		String? reportUserCode,
+		String? deviceCode,
+		String? patientId,
+		List<String>? reportLabels,
+		List<String>? platformLabels,
+		List<String>? diagnosisLabels,
+		String? reportOrgan,
+		DateTime? reportTime,
+		String? reportUserName,
+		DateTime? createTime,
+		DateTime? updateTime,
+	}) : super(
+			reportCode: reportCode,
+			recordCode: recordCode,
+			reportUserCode: reportUserCode,
+			deviceCode: deviceCode,
+			patientId: patientId,
+			reportLabels: reportLabels,
+			platformLabels: platformLabels,
+			diagnosisLabels: diagnosisLabels,
+			reportOrgan: reportOrgan,
+			reportTime: reportTime,
+			reportUserName: reportUserName,
+			createTime: createTime,
+			updateTime: updateTime,
+		);
+
+	factory ReportDTO.fromJson(Map<String, dynamic> map) {
+		return ReportDTO( 
+			reportTemplateJson: map['ReportTemplateJson'],
+			reportDatasJson: map['ReportDatasJson'],
+			reportCode: map['ReportCode'],
+			recordCode: map['RecordCode'],
+			reportUserCode: map['ReportUserCode'],
+			deviceCode: map['DeviceCode'],
+			patientId: map['PatientId'],
+			reportLabels: map['ReportLabels'] != null ? map['ReportLabels'].cast<String>().toList() : null,
+			platformLabels: map['PlatformLabels'] != null ? map['PlatformLabels'].cast<String>().toList() : null,
+			diagnosisLabels: map['DiagnosisLabels'] != null ? map['DiagnosisLabels'].cast<String>().toList() : null,
+			reportOrgan: map['ReportOrgan'],
+			reportTime: map['ReportTime'] != null ? DateTime.parse(map['ReportTime']) : null,
+			reportUserName: map['ReportUserName'],
+			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(reportTemplateJson != null)
+			map['ReportTemplateJson'] = reportTemplateJson;
+		if(reportDatasJson != null)
+			map['ReportDatasJson'] = reportDatasJson;
+		return map;
+	}
+}
+
+class FindReportByCodeRequest extends TokenRequest{
+	String? reportCode;
+
+	FindReportByCodeRequest({
+		this.reportCode,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory FindReportByCodeRequest.fromJson(Map<String, dynamic> map) {
+		return FindReportByCodeRequest( 
+			reportCode: map['ReportCode'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(reportCode != null)
+			map['ReportCode'] = reportCode;
+		return map;
+	}
+}
+
+class FindExamReportsRequest extends TokenRequest{
+	String? recordCode;
+
+	FindExamReportsRequest({
+		this.recordCode,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory FindExamReportsRequest.fromJson(Map<String, dynamic> map) {
+		return FindExamReportsRequest( 
+			recordCode: map['RecordCode'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(recordCode != null)
+			map['RecordCode'] = recordCode;
+		return map;
+	}
+}
+
+enum ReportLabelUsageTypeEnum {
+	People,
+	Animal,
+}
+
+class ReportLabelDTO extends BaseDTO{
+	String? reportLabelCode;
+	String? labelName;
+	String? languageCode;
+	ReportLabelUsageTypeEnum usageType;
+	List<String>? labelItems;
+
+	ReportLabelDTO({
+		this.reportLabelCode,
+		this.labelName,
+		this.languageCode,
+		this.usageType = ReportLabelUsageTypeEnum.People,
+		this.labelItems,
+		DateTime? createTime,
+		DateTime? updateTime,
+	}) : super(
+			createTime: createTime,
+			updateTime: updateTime,
+		);
+
+	factory ReportLabelDTO.fromJson(Map<String, dynamic> map) {
+		return ReportLabelDTO( 
+			reportLabelCode: map['ReportLabelCode'],
+			labelName: map['LabelName'],
+			languageCode: map['LanguageCode'],
+			usageType: ReportLabelUsageTypeEnum.values.firstWhere((e) => e.index == map['UsageType']),
+			labelItems: map['LabelItems'] != null ? map['LabelItems'].cast<String>().toList() : null,
+			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(reportLabelCode != null)
+			map['ReportLabelCode'] = reportLabelCode;
+		if(labelName != null)
+			map['LabelName'] = labelName;
+		if(languageCode != null)
+			map['LanguageCode'] = languageCode;
+		map['UsageType'] = usageType.index;
+		if(labelItems != null)
+			map['LabelItems'] = labelItems;
+		return map;
+	}
+}
+
+class FindReportLabelsRequest extends TokenRequest{
+	String? recordCode;
+	String? languageCode;
+
+	FindReportLabelsRequest({
+		this.recordCode,
+		this.languageCode,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory FindReportLabelsRequest.fromJson(Map<String, dynamic> map) {
+		return FindReportLabelsRequest( 
+			recordCode: map['RecordCode'],
+			languageCode: map['LanguageCode'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(recordCode != null)
+			map['RecordCode'] = recordCode;
+		if(languageCode != null)
+			map['LanguageCode'] = languageCode;
+		return map;
+	}
+}
+
+class ShareDTO extends BaseDTO{
+	String? shareCode;
+	String? shortCode;
+	String? shareContent;
+
+	ShareDTO({
+		this.shareCode,
+		this.shortCode,
+		this.shareContent,
+		DateTime? createTime,
+		DateTime? updateTime,
+	}) : super(
+			createTime: createTime,
+			updateTime: updateTime,
+		);
+
+	factory ShareDTO.fromJson(Map<String, dynamic> map) {
+		return ShareDTO( 
+			shareCode: map['ShareCode'],
+			shortCode: map['ShortCode'],
+			shareContent: map['ShareContent'],
+			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(shareCode != null)
+			map['ShareCode'] = shareCode;
+		if(shortCode != null)
+			map['ShortCode'] = shortCode;
+		if(shareContent != null)
+			map['ShareContent'] = shareContent;
+		return map;
+	}
+}
+
+class FindShareContentRequest {
+	String? shortCode;
+
+	FindShareContentRequest({
+		this.shortCode,
+	});
+
+	factory FindShareContentRequest.fromJson(Map<String, dynamic> map) {
+		return FindShareContentRequest( 
+			shortCode: map['ShortCode'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		if(shortCode != null)
+			map['ShortCode'] = shortCode;
+		return map;
+	}
+}
+
+class AddReportRequest extends TokenRequest{
+	String? recordCode;
+	String? reportTemplateJson;
+	String? reportDatasJson;
+	List<String>? reportLabels;
+	List<String>? platformLabels;
+	List<String>? diagnosisLabels;
+	String? reportOrgan;
+
+	AddReportRequest({
+		this.recordCode,
+		this.reportTemplateJson,
+		this.reportDatasJson,
+		this.reportLabels,
+		this.platformLabels,
+		this.diagnosisLabels,
+		this.reportOrgan,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory AddReportRequest.fromJson(Map<String, dynamic> map) {
+		return AddReportRequest( 
+			recordCode: map['RecordCode'],
+			reportTemplateJson: map['ReportTemplateJson'],
+			reportDatasJson: map['ReportDatasJson'],
+			reportLabels: map['ReportLabels'] != null ? map['ReportLabels'].cast<String>().toList() : null,
+			platformLabels: map['PlatformLabels'] != null ? map['PlatformLabels'].cast<String>().toList() : null,
+			diagnosisLabels: map['DiagnosisLabels'] != null ? map['DiagnosisLabels'].cast<String>().toList() : null,
+			reportOrgan: map['ReportOrgan'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(recordCode != null)
+			map['RecordCode'] = recordCode;
+		if(reportTemplateJson != null)
+			map['ReportTemplateJson'] = reportTemplateJson;
+		if(reportDatasJson != null)
+			map['ReportDatasJson'] = reportDatasJson;
+		if(reportLabels != null)
+			map['ReportLabels'] = reportLabels;
+		if(platformLabels != null)
+			map['PlatformLabels'] = platformLabels;
+		if(diagnosisLabels != null)
+			map['DiagnosisLabels'] = diagnosisLabels;
+		if(reportOrgan != null)
+			map['ReportOrgan'] = reportOrgan;
+		return map;
+	}
+}
+
+class ModifyReportRequest extends AddReportRequest{
+	String? reportCode;
+
+	ModifyReportRequest({
+		this.reportCode,
+		String? recordCode,
+		String? reportTemplateJson,
+		String? reportDatasJson,
+		List<String>? reportLabels,
+		List<String>? platformLabels,
+		List<String>? diagnosisLabels,
+		String? reportOrgan,
+		String? token,
+	}) : super(
+			recordCode: recordCode,
+			reportTemplateJson: reportTemplateJson,
+			reportDatasJson: reportDatasJson,
+			reportLabels: reportLabels,
+			platformLabels: platformLabels,
+			diagnosisLabels: diagnosisLabels,
+			reportOrgan: reportOrgan,
+			token: token,
+		);
+
+	factory ModifyReportRequest.fromJson(Map<String, dynamic> map) {
+		return ModifyReportRequest( 
+			reportCode: map['ReportCode'],
+			recordCode: map['RecordCode'],
+			reportTemplateJson: map['ReportTemplateJson'],
+			reportDatasJson: map['ReportDatasJson'],
+			reportLabels: map['ReportLabels'] != null ? map['ReportLabels'].cast<String>().toList() : null,
+			platformLabels: map['PlatformLabels'] != null ? map['PlatformLabels'].cast<String>().toList() : null,
+			diagnosisLabels: map['DiagnosisLabels'] != null ? map['DiagnosisLabels'].cast<String>().toList() : null,
+			reportOrgan: map['ReportOrgan'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(reportCode != null)
+			map['ReportCode'] = reportCode;
+		return map;
+	}
+}
+
+class ModifyReportLabelsRequest extends TokenRequest{
+	String? reportCode;
+	List<String>? reportLabels;
+
+	ModifyReportLabelsRequest({
+		this.reportCode,
+		this.reportLabels,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory ModifyReportLabelsRequest.fromJson(Map<String, dynamic> map) {
+		return ModifyReportLabelsRequest( 
+			reportCode: map['ReportCode'],
+			reportLabels: map['ReportLabels'] != null ? map['ReportLabels'].cast<String>().toList() : null,
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(reportCode != null)
+			map['ReportCode'] = reportCode;
+		if(reportLabels != null)
+			map['ReportLabels'] = reportLabels;
+		return map;
+	}
+}
+
+class ShareReportBySmsRequest extends TokenRequest{
+	String? reportCode;
+	List<String>? mobileList;
+
+	ShareReportBySmsRequest({
+		this.reportCode,
+		this.mobileList,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory ShareReportBySmsRequest.fromJson(Map<String, dynamic> map) {
+		return ShareReportBySmsRequest( 
+			reportCode: map['ReportCode'],
+			mobileList: map['MobileList'] != null ? map['MobileList'].cast<String>().toList() : null,
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(reportCode != null)
+			map['ReportCode'] = reportCode;
+		if(mobileList != null)
+			map['MobileList'] = mobileList;
+		return map;
+	}
+}
+
+class ShareReportByEmailRequest extends TokenRequest{
+	String? reportCode;
+	List<String>? emailList;
+
+	ShareReportByEmailRequest({
+		this.reportCode,
+		this.emailList,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory ShareReportByEmailRequest.fromJson(Map<String, dynamic> map) {
+		return ShareReportByEmailRequest( 
+			reportCode: map['ReportCode'],
+			emailList: map['EmailList'] != null ? map['EmailList'].cast<String>().toList() : null,
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(reportCode != null)
+			map['ReportCode'] = reportCode;
+		if(emailList != null)
+			map['EmailList'] = emailList;
+		return map;
+	}
+}
+
+

+ 5 - 0
lib/services/sMS.dart

@@ -27,5 +27,10 @@ class SMSService extends JsonRpcClientBase {
 		return rpcRst;
 	}
 
+	Future<bool> generalMessageAsync(List<String> mobiles,String template,List<String> paramList) async {
+		var rpcRst = await call("GeneralMessageAsync", [mobiles,template,paramList]);
+		return rpcRst;
+	}
+
 }