瀏覽代碼

更新Server最新版本接口

loki.wu 2 年之前
父節點
當前提交
34e393c416

+ 44 - 44
lib/rpc.dart

@@ -50,72 +50,72 @@ class JsonRpcProxy {
     return _platformService!;
   }
 
-  AIDiagnosisService get aIDiagnosis =>
-      findService(() => new AIDiagnosisService(currentHostAddress));
+	AIDiagnosisService get aIDiagnosis =>
+	findService(() => new AIDiagnosisService(currentHostAddress));
 
-  AuthenticationService get authentication =>
-      findService(() => new AuthenticationService(currentHostAddress));
+	AuthenticationService get authentication =>
+	findService(() => new AuthenticationService(currentHostAddress));
 
-  ConnectService get connect =>
-      findService(() => new ConnectService(currentHostAddress));
+	ConnectService get connect =>
+	findService(() => new ConnectService(currentHostAddress));
 
-  DeviceService get device =>
-      findService(() => new DeviceService(currentHostAddress));
+	DeviceService get device =>
+	findService(() => new DeviceService(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));
 
-  LoginService get login =>
-      findService(() => new LoginService(currentHostAddress));
+	LoginService get login =>
+	findService(() => new LoginService(currentHostAddress));
 
-  NotificationService get notification =>
-      findService(() => new NotificationService(currentHostAddress));
+	NotificationService get notification =>
+	findService(() => new NotificationService(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));
 
-  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));
 
-  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));
 
-  RemedicalService get remedical =>
-      findService(() => new RemedicalService(currentHostAddress));
+	RemedicalService get remedical =>
+	findService(() => new RemedicalService(currentHostAddress));
 
-  ReportService get report =>
-      findService(() => new ReportService(currentHostAddress));
+	ReportService get report =>
+	findService(() => new ReportService(currentHostAddress));
 
-  RoleService get role =>
-      findService(() => new RoleService(currentHostAddress));
+	RoleService get role =>
+	findService(() => new RoleService(currentHostAddress));
 
-  SMSService get sMS => findService(() => new SMSService(currentHostAddress));
+	SMSService get sMS =>
+	findService(() => new SMSService(currentHostAddress));
 
-  StorageService get storage =>
-      findService(() => new StorageService(currentHostAddress));
+	StorageService get storage =>
+	findService(() => new StorageService(currentHostAddress));
 
-  UserService get user =>
-      findService(() => new UserService(currentHostAddress));
+	UserService get user =>
+	findService(() => new UserService(currentHostAddress));
 
-  VinnoServerService get vinnoServer =>
-      findService(() => new VinnoServerService(currentHostAddress));
+	VinnoServerService get vinnoServer =>
+	findService(() => new VinnoServerService(currentHostAddress));
 
-  DBLogService get dBLog =>
-      findService(() => new DBLogService(currentHostAddress));
+	DBLogService get dBLog =>
+	findService(() => new DBLogService(currentHostAddress));
 
-  /* 服务代理设置 End */
 
   /// 设置服务主机地址
   void setServerHost(String address) {

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

@@ -312,6 +312,7 @@ class CarotidResultDTO {
 	String? mdlFile;
 	List<MeasureImageFileDTO >? measureImageFiles;
 	String? measureResult;
+	List<String >? surfaceImageList;
 
 	CarotidResultDTO({
 		this.carotidScanType = CarotidScanTypeEnum.CarotidLeft,
@@ -320,6 +321,7 @@ class CarotidResultDTO {
 		this.mdlFile,
 		this.measureImageFiles,
 		this.measureResult,
+		this.surfaceImageList,
 	});
 
 	factory CarotidResultDTO.fromJson(Map<String, dynamic> map) {
@@ -330,6 +332,7 @@ class CarotidResultDTO {
 			mdlFile: map['MdlFile'],
 			measureImageFiles: map['MeasureImageFiles'] != null ? (map['MeasureImageFiles'] as List).map((e)=>MeasureImageFileDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
 			measureResult: map['MeasureResult'],
+			surfaceImageList: map['SurfaceImageList'] != null ? map['SurfaceImageList'].cast<String>().toList() : null,
 		);
 	}
 
@@ -345,6 +348,8 @@ class CarotidResultDTO {
 			map['MeasureImageFiles'] = measureImageFiles;
 		if(measureResult != null)
 			map['MeasureResult'] = measureResult;
+		if(surfaceImageList != null)
+			map['SurfaceImageList'] = surfaceImageList;
 		return map;
 	}
 }

+ 37 - 25
lib/services/authentication.m.dart

@@ -182,7 +182,7 @@ enum CustomerRpcCode {
 	TokenExpired,
 	InvalidTokenVersion,
 	IPInBlacklist,
-	placeHolder_5,
+	AuthenticationError,
 	placeHolder_6,
 	placeHolder_7,
 	placeHolder_8,
@@ -2179,9 +2179,9 @@ enum CustomerRpcCode {
 	placeHolder_1999,
 	NoExistDevice,
 	HasAddedDevice,
-	placeHolder_2002,
-	placeHolder_2003,
-	placeHolder_2004,
+	UniqueCodeIsEmpty,
+	DeviceDuplicateBind,
+	DeviceNotOrg,
 	placeHolder_2005,
 	placeHolder_2006,
 	placeHolder_2007,
@@ -3177,7 +3177,7 @@ enum CustomerRpcCode {
 	placeHolder_2997,
 	placeHolder_2998,
 	placeHolder_2999,
-	placeHolder_3000,
+	OrgCanNotChoseChild,
 	placeHolder_3001,
 	placeHolder_3002,
 	placeHolder_3003,
@@ -4179,26 +4179,26 @@ enum CustomerRpcCode {
 	placeHolder_3999,
 	PatientCodesRequired,
 	IsBatchExportDiagnoseDataFalse,
-	placeHolder_4002,
-	placeHolder_4003,
-	placeHolder_4004,
-	placeHolder_4005,
-	placeHolder_4006,
-	placeHolder_4007,
-	placeHolder_4008,
-	placeHolder_4009,
-	placeHolder_4010,
-	placeHolder_4011,
-	placeHolder_4012,
-	placeHolder_4013,
-	placeHolder_4014,
-	placeHolder_4015,
-	placeHolder_4016,
-	placeHolder_4017,
-	placeHolder_4018,
-	placeHolder_4019,
-	placeHolder_4020,
-	placeHolder_4021,
+	ExamIsScaned,
+	ReferralIsCircle,
+	ReferralIsTimedOut,
+	ExistUnCompleteScan,
+	NoRightToReferralInThisOrg,
+	PatientNoSameOrg,
+	DeviceNoSameOrg,
+	RecordNoSameDevice,
+	ReferralNotAccepted,
+	PatientInfoIsNotValid,
+	SexError,
+	DeviceNoOrg,
+	PatientNotExistError,
+	ExamNotExistError,
+	RecordNotExistError,
+	ExamNotForDeviceError,
+	RootOrgNotExistError,
+	ReservationNoExistError,
+	ExamNotRemedicalDataError,
+	ReferralIsNotWait,
 	placeHolder_4022,
 	placeHolder_4023,
 	placeHolder_4024,
@@ -6178,6 +6178,18 @@ enum CustomerRpcCode {
 	placeHolder_5998,
 	placeHolder_5999,
 	PhoneIncorrect,
+	NameEmptyError,
+	PhoneEmptyError,
+	NameLengthError,
+	PhoneLengthError,
+	UserNotExistError,
+	PhoneAndNameNotExistError,
+	NotOrgAdmin,
+	OrganizationNotExist,
+	UserCodeEmptyError,
+	RoleNoApply,
+	IdentityCardIsRequired,
+	LicenseCardIsRequired,
 }
 
 class ValidateTokenResult {

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

@@ -159,6 +159,7 @@ class DeviceInfoDTO extends BaseDTO{
 	String? cPUModel;
 	String? systemLanguage;
 	List<String >? diagnosisModules;
+	List<String >? reportPosterCodes;
 
 	DeviceInfoDTO({
 		this.deviceCode,
@@ -180,6 +181,7 @@ class DeviceInfoDTO extends BaseDTO{
 		this.cPUModel,
 		this.systemLanguage,
 		this.diagnosisModules,
+		this.reportPosterCodes,
 		DateTime? createTime,
 		DateTime? updateTime,
 	}) : super(
@@ -208,6 +210,7 @@ class DeviceInfoDTO extends BaseDTO{
 			cPUModel: map['CPUModel'],
 			systemLanguage: map['SystemLanguage'],
 			diagnosisModules: map['DiagnosisModules'] != null ? map['DiagnosisModules'].cast<String>().toList() : null,
+			reportPosterCodes: map['ReportPosterCodes'] != null ? map['ReportPosterCodes'].cast<String>().toList() : null,
 			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
 			updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
 		);
@@ -252,6 +255,8 @@ class DeviceInfoDTO extends BaseDTO{
 			map['SystemLanguage'] = systemLanguage;
 		if(diagnosisModules != null)
 			map['DiagnosisModules'] = diagnosisModules;
+		if(reportPosterCodes != null)
+			map['ReportPosterCodes'] = reportPosterCodes;
 		return map;
 	}
 }
@@ -282,6 +287,7 @@ class CacheDeviceDTO extends DeviceInfoDTO{
 		String? cPUModel,
 		String? systemLanguage,
 		List<String >? diagnosisModules,
+		List<String >? reportPosterCodes,
 		DateTime? createTime,
 		DateTime? updateTime,
 	}) : super(
@@ -304,6 +310,7 @@ class CacheDeviceDTO extends DeviceInfoDTO{
 			cPUModel: cPUModel,
 			systemLanguage: systemLanguage,
 			diagnosisModules: diagnosisModules,
+			reportPosterCodes: reportPosterCodes,
 			createTime: createTime,
 			updateTime: updateTime,
 		);
@@ -331,6 +338,7 @@ class CacheDeviceDTO extends DeviceInfoDTO{
 			cPUModel: map['CPUModel'],
 			systemLanguage: map['SystemLanguage'],
 			diagnosisModules: map['DiagnosisModules'] != null ? map['DiagnosisModules'].cast<String>().toList() : null,
+			reportPosterCodes: map['ReportPosterCodes'] != null ? map['ReportPosterCodes'].cast<String>().toList() : null,
 			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
 			updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
 		);

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

@@ -124,6 +124,7 @@ class DeviceExtendInfoDTO extends DeviceInfoDTO{
 		String? cPUModel,
 		String? systemLanguage,
 		List<String >? diagnosisModules,
+		List<String >? reportPosterCodes,
 		DateTime? createTime,
 		DateTime? updateTime,
 	}) : super(
@@ -146,6 +147,7 @@ class DeviceExtendInfoDTO extends DeviceInfoDTO{
 			cPUModel: cPUModel,
 			systemLanguage: systemLanguage,
 			diagnosisModules: diagnosisModules,
+			reportPosterCodes: reportPosterCodes,
 			createTime: createTime,
 			updateTime: updateTime,
 		);
@@ -177,6 +179,7 @@ class DeviceExtendInfoDTO extends DeviceInfoDTO{
 			cPUModel: map['CPUModel'],
 			systemLanguage: map['SystemLanguage'],
 			diagnosisModules: map['DiagnosisModules'] != null ? map['DiagnosisModules'].cast<String>().toList() : null,
+			reportPosterCodes: map['ReportPosterCodes'] != null ? map['ReportPosterCodes'].cast<String>().toList() : null,
 			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
 			updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
 		);

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

@@ -85,6 +85,32 @@ class SettingDTOClass {
 	}
 }
 
+class ReferralOrganizationDTO {
+	String? organizationCode;
+	String? organizationName;
+
+	ReferralOrganizationDTO({
+		this.organizationCode,
+		this.organizationName,
+	});
+
+	factory ReferralOrganizationDTO.fromJson(Map<String, dynamic> map) {
+		return ReferralOrganizationDTO( 
+			organizationCode: map['OrganizationCode'],
+			organizationName: map['OrganizationName'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		if(organizationCode != null)
+			map['OrganizationCode'] = organizationCode;
+		if(organizationName != null)
+			map['OrganizationName'] = organizationName;
+		return map;
+	}
+}
+
 class OrganizationBasicDTO extends OrganizationBaseDTO{
 	String? regionCode;
 	String? parentCode;
@@ -94,6 +120,9 @@ class OrganizationBasicDTO extends OrganizationBaseDTO{
 	List<SettingDTOClass >? settings;
 	List<String >? diagnosisModules;
 	bool isEncryptedShow;
+	double referralLimitHours;
+	List<String >? referralOrganizationCodes;
+	List<ReferralOrganizationDTO >? referralOrganizations;
 
 	OrganizationBasicDTO({
 		this.regionCode,
@@ -104,6 +133,9 @@ class OrganizationBasicDTO extends OrganizationBaseDTO{
 		this.settings,
 		this.diagnosisModules,
 		this.isEncryptedShow = false,
+		this.referralLimitHours = 0,
+		this.referralOrganizationCodes,
+		this.referralOrganizations,
 		String? organizationCode,
 		String? organizationName,
 		DateTime? createTime,
@@ -125,6 +157,9 @@ class OrganizationBasicDTO extends OrganizationBaseDTO{
 			settings: map['Settings'] != null ? (map['Settings'] as List).map((e)=>SettingDTOClass.fromJson(e as Map<String,dynamic>)).toList() : null,
 			diagnosisModules: map['DiagnosisModules'] != null ? map['DiagnosisModules'].cast<String>().toList() : null,
 			isEncryptedShow: map['IsEncryptedShow'],
+			referralLimitHours: map['ReferralLimitHours'],
+			referralOrganizationCodes: map['ReferralOrganizationCodes'] != null ? map['ReferralOrganizationCodes'].cast<String>().toList() : null,
+			referralOrganizations: map['ReferralOrganizations'] != null ? (map['ReferralOrganizations'] as List).map((e)=>ReferralOrganizationDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
 			organizationCode: map['OrganizationCode'],
 			organizationName: map['OrganizationName'],
 			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
@@ -147,6 +182,11 @@ class OrganizationBasicDTO extends OrganizationBaseDTO{
 		if(diagnosisModules != null)
 			map['DiagnosisModules'] = diagnosisModules;
 		map['IsEncryptedShow'] = isEncryptedShow;
+		map['ReferralLimitHours'] = referralLimitHours;
+		if(referralOrganizationCodes != null)
+			map['ReferralOrganizationCodes'] = referralOrganizationCodes;
+		if(referralOrganizations != null)
+			map['ReferralOrganizations'] = referralOrganizations;
 		return map;
 	}
 }
@@ -198,6 +238,9 @@ class OrganizationDTO extends OrganizationBasicDTO{
 		List<SettingDTOClass >? settings,
 		List<String >? diagnosisModules,
 		bool isEncryptedShow = false,
+		double referralLimitHours = 0,
+		List<String >? referralOrganizationCodes,
+		List<ReferralOrganizationDTO >? referralOrganizations,
 		String? organizationCode,
 		String? organizationName,
 		DateTime? createTime,
@@ -211,6 +254,9 @@ class OrganizationDTO extends OrganizationBasicDTO{
 			settings: settings,
 			diagnosisModules: diagnosisModules,
 			isEncryptedShow: isEncryptedShow,
+			referralLimitHours: referralLimitHours,
+			referralOrganizationCodes: referralOrganizationCodes,
+			referralOrganizations: referralOrganizations,
 			organizationCode: organizationCode,
 			organizationName: organizationName,
 			createTime: createTime,
@@ -239,6 +285,9 @@ class OrganizationDTO extends OrganizationBasicDTO{
 			settings: map['Settings'] != null ? (map['Settings'] as List).map((e)=>SettingDTOClass.fromJson(e as Map<String,dynamic>)).toList() : null,
 			diagnosisModules: map['DiagnosisModules'] != null ? map['DiagnosisModules'].cast<String>().toList() : null,
 			isEncryptedShow: map['IsEncryptedShow'],
+			referralLimitHours: map['ReferralLimitHours'],
+			referralOrganizationCodes: map['ReferralOrganizationCodes'] != null ? map['ReferralOrganizationCodes'].cast<String>().toList() : null,
+			referralOrganizations: map['ReferralOrganizations'] != null ? (map['ReferralOrganizations'] as List).map((e)=>ReferralOrganizationDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
 			organizationCode: map['OrganizationCode'],
 			organizationName: map['OrganizationName'],
 			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
@@ -382,6 +431,8 @@ class SavePersonOrganizationRequest {
 	String? organizationName;
 	OrganizationPatientTypeEnum patientType;
 	bool isEncryptedShow;
+	double referralLimitHours;
+	List<String >? referralOrganizationCodes;
 
 	SavePersonOrganizationRequest({
 		this.token,
@@ -392,6 +443,8 @@ class SavePersonOrganizationRequest {
 		this.organizationName,
 		this.patientType = OrganizationPatientTypeEnum.Person,
 		this.isEncryptedShow = false,
+		this.referralLimitHours = 0,
+		this.referralOrganizationCodes,
 	});
 
 	factory SavePersonOrganizationRequest.fromJson(Map<String, dynamic> map) {
@@ -404,6 +457,8 @@ class SavePersonOrganizationRequest {
 			organizationName: map['OrganizationName'],
 			patientType: OrganizationPatientTypeEnum.values.firstWhere((e) => e.index == map['PatientType']),
 			isEncryptedShow: map['IsEncryptedShow'],
+			referralLimitHours: map['ReferralLimitHours'],
+			referralOrganizationCodes: map['ReferralOrganizationCodes'] != null ? map['ReferralOrganizationCodes'].cast<String>().toList() : null,
 		);
 	}
 
@@ -423,6 +478,9 @@ class SavePersonOrganizationRequest {
 			map['OrganizationName'] = organizationName;
 		map['PatientType'] = patientType.index;
 		map['IsEncryptedShow'] = isEncryptedShow;
+		map['ReferralLimitHours'] = referralLimitHours;
+		if(referralOrganizationCodes != null)
+			map['ReferralOrganizationCodes'] = referralOrganizationCodes;
 		return map;
 	}
 }

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

@@ -110,6 +110,7 @@ class PatientInfoBaseDTO extends BaseDTO{
 	int unReadRecordCount;
 	String? headImgUrl;
 	String? patientType;
+	bool isReferral;
 
 	PatientInfoBaseDTO({
 		this.patientCode,
@@ -126,6 +127,7 @@ class PatientInfoBaseDTO extends BaseDTO{
 		this.unReadRecordCount = 0,
 		this.headImgUrl,
 		this.patientType,
+		this.isReferral = false,
 		DateTime? createTime,
 		DateTime? updateTime,
 	}) : super(
@@ -149,6 +151,7 @@ class PatientInfoBaseDTO extends BaseDTO{
 			unReadRecordCount: map['UnReadRecordCount'],
 			headImgUrl: map['HeadImgUrl'],
 			patientType: map['PatientType'],
+			isReferral: map['IsReferral'],
 			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
 			updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
 		);
@@ -181,6 +184,7 @@ class PatientInfoBaseDTO extends BaseDTO{
 			map['HeadImgUrl'] = headImgUrl;
 		if(patientType != null)
 			map['PatientType'] = patientType;
+		map['IsReferral'] = isReferral;
 		return map;
 	}
 }
@@ -208,6 +212,7 @@ class PatientInfoDTO extends PatientInfoBaseDTO{
 		int unReadRecordCount = 0,
 		String? headImgUrl,
 		String? patientType,
+		bool isReferral = false,
 		DateTime? createTime,
 		DateTime? updateTime,
 	}) : super(
@@ -225,6 +230,7 @@ class PatientInfoDTO extends PatientInfoBaseDTO{
 			unReadRecordCount: unReadRecordCount,
 			headImgUrl: headImgUrl,
 			patientType: patientType,
+			isReferral: isReferral,
 			createTime: createTime,
 			updateTime: updateTime,
 		);
@@ -248,6 +254,7 @@ class PatientInfoDTO extends PatientInfoBaseDTO{
 			unReadRecordCount: map['UnReadRecordCount'],
 			headImgUrl: map['HeadImgUrl'],
 			patientType: map['PatientType'],
+			isReferral: map['IsReferral'],
 			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
 			updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
 		);
@@ -295,12 +302,14 @@ class ClientPatientInfoBaseDTO extends BaseDTO{
 	bool isValid;
 	List<DataItemDTO >? patientData;
 	int unReadRecordCount;
+	bool isReferral;
 
 	ClientPatientInfoBaseDTO({
 		this.patientCode,
 		this.isValid = false,
 		this.patientData,
 		this.unReadRecordCount = 0,
+		this.isReferral = false,
 		DateTime? createTime,
 		DateTime? updateTime,
 	}) : super(
@@ -314,6 +323,7 @@ class ClientPatientInfoBaseDTO extends BaseDTO{
 			isValid: map['IsValid'],
 			patientData: map['PatientData'] != null ? (map['PatientData'] as List).map((e)=>DataItemDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
 			unReadRecordCount: map['UnReadRecordCount'],
+			isReferral: map['IsReferral'],
 			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
 			updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
 		);
@@ -327,6 +337,7 @@ class ClientPatientInfoBaseDTO extends BaseDTO{
 		if(patientData != null)
 			map['PatientData'] = patientData;
 		map['UnReadRecordCount'] = unReadRecordCount;
+		map['IsReferral'] = isReferral;
 		return map;
 	}
 }
@@ -956,6 +967,7 @@ class ClientPatientInfoDTO extends ClientPatientInfoBaseDTO{
 		bool isValid = false,
 		List<DataItemDTO >? patientData,
 		int unReadRecordCount = 0,
+		bool isReferral = false,
 		DateTime? createTime,
 		DateTime? updateTime,
 	}) : super(
@@ -963,6 +975,7 @@ class ClientPatientInfoDTO extends ClientPatientInfoBaseDTO{
 			isValid: isValid,
 			patientData: patientData,
 			unReadRecordCount: unReadRecordCount,
+			isReferral: isReferral,
 			createTime: createTime,
 			updateTime: updateTime,
 		);
@@ -978,6 +991,7 @@ class ClientPatientInfoDTO extends ClientPatientInfoBaseDTO{
 			isValid: map['IsValid'],
 			patientData: map['PatientData'] != null ? (map['PatientData'] as List).map((e)=>DataItemDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
 			unReadRecordCount: map['UnReadRecordCount'],
+			isReferral: map['IsReferral'],
 			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
 			updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
 		);

+ 88 - 12
lib/services/remedical.dart

@@ -9,7 +9,6 @@ import 'patient.m.dart';
 import 'recordInfo.m.dart';
 import 'authentication.m.dart';
 import 'organization.m.dart';
-import 'aIDiagnosis.m.dart';
 
 
 class RemedicalService extends JsonRpcClientBase {
@@ -40,6 +39,14 @@ class RemedicalService extends JsonRpcClientBase {
 		FJsonConvert.setDecoder((map) => PresetCommentItemResultDTO.fromJson(map));
 		FJsonConvert.setDecoder((map) => MeasureSystemSettingDTO.fromJson(map));
 		FJsonConvert.setDecoder((map) => ExportRemedicalDataResult.fromJson(map));
+		FJsonConvert.setDecoder((map) => PageResult<QueryReferralRecordPageDTO>.fromJson(map));
+		FJsonConvert.setDecoder((map) => QueryReferralRecordPageDTO.fromJson(map));
+		FJsonConvert.setDecoder((map) => OrganizationDTO.fromJson(map));
+		FJsonConvert.setDecoder((map) => ClientPatientInfoDTO.fromJson(map));
+		FJsonConvert.setDecoder((map) => ReferralRecordDetailDTO.fromJson(map));
+		FJsonConvert.setDecoder((map) => PageResult<GetRecordsPageDTO>.fromJson(map));
+		FJsonConvert.setDecoder((map) => GetRecordsPageDTO.fromJson(map));
+		FJsonConvert.setDecoder((map) => ReportDTO.fromJson(map));
 	}
 
 	Future<CreateExaminfoResult> createExamInfoAsync(CreateExaminfoRequest request) async {
@@ -134,17 +141,6 @@ class RemedicalService extends JsonRpcClientBase {
 		return result;
 	}
 
-	Future<List<DiagnosisOrganEnum>> findDeviceDiagnosisAsync(FindDeviceDiagnosisRequest request) async {
-		var rpcRst = await call("FindDeviceDiagnosisAsync", request);
-		var result = (rpcRst as List).map((e)=>DiagnosisOrganEnum.values.firstWhere((i) => i.index == e)).toList();
-		return result;
-	}
-
-	Future<bool> deviceDiagnosisChanged(DeviceDiagnosisChangedNotification request) async {
-		var rpcRst = await call("DeviceDiagnosisChanged", request);
-		return rpcRst;
-	}
-
 	Future<String> getReportElementByLanguageAsync(GetReportElementByLanguageRequest request) async {
 		var rpcRst = await call("GetReportElementByLanguageAsync", request);
 		return rpcRst;
@@ -177,5 +173,85 @@ class RemedicalService extends JsonRpcClientBase {
 		return result;
 	}
 
+	Future<String> findCacheByCodeAsync(FindCacheByCodeRequest request) async {
+		var rpcRst = await call("FindCacheByCodeAsync", request);
+		return rpcRst;
+	}
+
+	Future<String> applyReferralRecordAsync(CreateReferralRecordRequest request) async {
+		var rpcRst = await call("ApplyReferralRecordAsync", request);
+		return rpcRst;
+	}
+
+	Future<PageResult<QueryReferralRecordPageDTO>> queryReferralRecordListAsync(QueryReferralRecordListRequest request) async {
+		var rpcRst = await call("QueryReferralRecordListAsync", request);
+		var result = PageResult<QueryReferralRecordPageDTO>.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
+	Future<bool> auditReferralRecordAsync(AuditReferralRecordRequest request) async {
+		var rpcRst = await call("AuditReferralRecordAsync", request);
+		return rpcRst;
+	}
+
+	Future<bool> withdrawReferralRecordAsync(WithdrawReferralRecordRequest request) async {
+		var rpcRst = await call("WithdrawReferralRecordAsync", request);
+		return rpcRst;
+	}
+
+	Future<List<OrganizationDTO>> queryReferralOrganizationsAsync(ReferralOrganizationsQueryRequest request) async {
+		var rpcRst = await call("QueryReferralOrganizationsAsync", request);
+		var result = (rpcRst as List).map((e)=>OrganizationDTO.fromJson(e as Map<String, dynamic>)).toList();
+		return result;
+	}
+
+	Future<ClientPatientInfoDTO> queryReferralPatientByCodeAsync(QueryReferralPatientByCodeRequest request) async {
+		var rpcRst = await call("QueryReferralPatientByCodeAsync", request);
+		var result = ClientPatientInfoDTO.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
+	Future<List<ReferralRecordDetailDTO>> findPatientReferralRecordAsync(FindPatientReferralRecordRequest request) async {
+		var rpcRst = await call("FindPatientReferralRecordAsync", request);
+		var result = (rpcRst as List).map((e)=>ReferralRecordDetailDTO.fromJson(e as Map<String, dynamic>)).toList();
+		return result;
+	}
+
+	Future<List<ReferralRecordDetailDTO>> findReferralInRecordAsync(FindReferralInRecordRequest request) async {
+		var rpcRst = await call("FindReferralInRecordAsync", request);
+		var result = (rpcRst as List).map((e)=>ReferralRecordDetailDTO.fromJson(e as Map<String, dynamic>)).toList();
+		return result;
+	}
+
+	Future<PageResult<RemedicalListResult>> queryReferralRemedicalListPagesAsync(QueryReferralRecordsPageRequest request) async {
+		var rpcRst = await call("QueryReferralRemedicalListPagesAsync", request);
+		var result = PageResult<RemedicalListResult>.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
+	Future<PageResult<GetRecordsPageDTO>> queryReferralRecordInfoPagesAsync(QueryReferralRecordsPageRequest request) async {
+		var rpcRst = await call("QueryReferralRecordInfoPagesAsync", request);
+		var result = PageResult<GetRecordsPageDTO>.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
+	Future<List<ReportDTO>> queryReferralExamReportsAsync(QueryReferralExamReportRequest request) async {
+		var rpcRst = await call("QueryReferralExamReportsAsync", request);
+		var result = (rpcRst as List).map((e)=>ReportDTO.fromJson(e as Map<String, dynamic>)).toList();
+		return result;
+	}
+
+	Future<List<ReportDTO>> queryReferralPatientReportsAsync(QueryReferralPatientByCodeRequest request) async {
+		var rpcRst = await call("QueryReferralPatientReportsAsync", request);
+		var result = (rpcRst as List).map((e)=>ReportDTO.fromJson(e as Map<String, dynamic>)).toList();
+		return result;
+	}
+
+	Future<RemedicalListResult> queryReferralRemedicalListByRecordInfoAsync(QueryReferralExamReportRequest request) async {
+		var rpcRst = await call("QueryReferralRemedicalListByRecordInfoAsync", request);
+		var result = RemedicalListResult.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
 }
 

+ 886 - 60
lib/services/remedical.m.dart

@@ -528,6 +528,7 @@ class QueryExamInfoResult {
 	String? patientSex;
 	List<PatientInfoExt >? patientInfoExtList;
 	List<String >? associatedExamCodes;
+	RecordStatusEnum examStatus;
 
 	QueryExamInfoResult({
 		this.createTime,
@@ -537,6 +538,7 @@ class QueryExamInfoResult {
 		this.patientSex,
 		this.patientInfoExtList,
 		this.associatedExamCodes,
+		this.examStatus = RecordStatusEnum.NotScanned,
 	});
 
 	factory QueryExamInfoResult.fromJson(Map<String, dynamic> map) {
@@ -548,6 +550,7 @@ class QueryExamInfoResult {
 			patientSex: map['PatientSex'],
 			patientInfoExtList: map['PatientInfoExtList'] != null ? (map['PatientInfoExtList'] as List).map((e)=>PatientInfoExt.fromJson(e as Map<String,dynamic>)).toList() : null,
 			associatedExamCodes: map['AssociatedExamCodes'] != null ? map['AssociatedExamCodes'].cast<String>().toList() : null,
+			examStatus: RecordStatusEnum.values.firstWhere((e) => e.index == map['ExamStatus']),
 		);
 	}
 
@@ -567,6 +570,7 @@ class QueryExamInfoResult {
 			map['PatientInfoExtList'] = patientInfoExtList;
 		if(associatedExamCodes != null)
 			map['AssociatedExamCodes'] = associatedExamCodes;
+		map['ExamStatus'] = examStatus.index;
 		return map;
 	}
 }
@@ -1330,66 +1334,6 @@ class GetPresetCommentsRequest extends TokenRequest{
 	}
 }
 
-class FindDeviceDiagnosisRequest extends TokenRequest{
-	String? deviceCode;
-
-	FindDeviceDiagnosisRequest({
-		this.deviceCode,
-		String? token,
-	}) : super(
-			token: token,
-		);
-
-	factory FindDeviceDiagnosisRequest.fromJson(Map<String, dynamic> map) {
-		return FindDeviceDiagnosisRequest( 
-			deviceCode: map['DeviceCode'],
-			token: map['Token'],
-		);
-	}
-
-	Map<String, dynamic> toJson() {
-		final map = super.toJson();
-		if(deviceCode != null)
-			map['DeviceCode'] = deviceCode;
-		return map;
-	}
-}
-
-class DeviceDiagnosisChangedNotification extends TokenRequest{
-	String? diagnosisModule;
-	String? organizationCode;
-	String? deviceCode;
-
-	DeviceDiagnosisChangedNotification({
-		this.diagnosisModule,
-		this.organizationCode,
-		this.deviceCode,
-		String? token,
-	}) : super(
-			token: token,
-		);
-
-	factory DeviceDiagnosisChangedNotification.fromJson(Map<String, dynamic> map) {
-		return DeviceDiagnosisChangedNotification( 
-			diagnosisModule: map['DiagnosisModule'],
-			organizationCode: map['OrganizationCode'],
-			deviceCode: map['DeviceCode'],
-			token: map['Token'],
-		);
-	}
-
-	Map<String, dynamic> toJson() {
-		final map = super.toJson();
-		if(diagnosisModule != null)
-			map['DiagnosisModule'] = diagnosisModule;
-		if(organizationCode != null)
-			map['OrganizationCode'] = organizationCode;
-		if(deviceCode != null)
-			map['DeviceCode'] = deviceCode;
-		return map;
-	}
-}
-
 class GetReportElementByLanguageRequest extends TokenRequest{
 	String? reportDatasJosn;
 	String? language;
@@ -2093,4 +2037,886 @@ class ExportRemedicalDataRequest extends TokenRequest{
 	}
 }
 
+class FindCacheByCodeRequest extends TokenRequest{
+	String? cacheCode;
+
+	FindCacheByCodeRequest({
+		this.cacheCode,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory FindCacheByCodeRequest.fromJson(Map<String, dynamic> map) {
+		return FindCacheByCodeRequest( 
+			cacheCode: map['CacheCode'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(cacheCode != null)
+			map['CacheCode'] = cacheCode;
+		return map;
+	}
+}
+
+class CreateReferralRecordRequest extends TokenRequest{
+	String? patientCode;
+	String? subjectMatter;
+	String? referralOrganizationCode;
+	String? referralUserCode;
+	String? referralRecordCode;
+
+	CreateReferralRecordRequest({
+		this.patientCode,
+		this.subjectMatter,
+		this.referralOrganizationCode,
+		this.referralUserCode,
+		this.referralRecordCode,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory CreateReferralRecordRequest.fromJson(Map<String, dynamic> map) {
+		return CreateReferralRecordRequest( 
+			patientCode: map['PatientCode'],
+			subjectMatter: map['SubjectMatter'],
+			referralOrganizationCode: map['ReferralOrganizationCode'],
+			referralUserCode: map['ReferralUserCode'],
+			referralRecordCode: map['ReferralRecordCode'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(patientCode != null)
+			map['PatientCode'] = patientCode;
+		if(subjectMatter != null)
+			map['SubjectMatter'] = subjectMatter;
+		if(referralOrganizationCode != null)
+			map['ReferralOrganizationCode'] = referralOrganizationCode;
+		if(referralUserCode != null)
+			map['ReferralUserCode'] = referralUserCode;
+		if(referralRecordCode != null)
+			map['ReferralRecordCode'] = referralRecordCode;
+		return map;
+	}
+}
+
+class QueryReferralRecordPageDTO extends ClientPatientInfoBaseDTO{
+	String? code;
+
+	QueryReferralRecordPageDTO({
+		this.code,
+		String? patientCode,
+		bool isValid = false,
+		List<DataItemDTO >? patientData,
+		int unReadRecordCount = 0,
+		bool isReferral = false,
+		DateTime? createTime,
+		DateTime? updateTime,
+	}) : super(
+			patientCode: patientCode,
+			isValid: isValid,
+			patientData: patientData,
+			unReadRecordCount: unReadRecordCount,
+			isReferral: isReferral,
+			createTime: createTime,
+			updateTime: updateTime,
+		);
+
+	factory QueryReferralRecordPageDTO.fromJson(Map<String, dynamic> map) {
+		return QueryReferralRecordPageDTO( 
+			code: map['Code'],
+			patientCode: map['PatientCode'],
+			isValid: map['IsValid'],
+			patientData: map['PatientData'] != null ? (map['PatientData'] as List).map((e)=>DataItemDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
+			unReadRecordCount: map['UnReadRecordCount'],
+			isReferral: map['IsReferral'],
+			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;
+		return map;
+	}
+}
+
+class QueryReferralRecordListRequest extends PageRequest{
+	String? keyWord;
+	DateTime? startTime;
+	DateTime? endTime;
+	PatientValidStatusEnum isValid;
+
+	QueryReferralRecordListRequest({
+		this.keyWord,
+		this.startTime,
+		this.endTime,
+		this.isValid = PatientValidStatusEnum.All,
+		int pageIndex = 0,
+		int pageSize = 0,
+		String? token,
+	}) : super(
+			pageIndex: pageIndex,
+			pageSize: pageSize,
+			token: token,
+		);
+
+	factory QueryReferralRecordListRequest.fromJson(Map<String, dynamic> map) {
+		return QueryReferralRecordListRequest( 
+			keyWord: map['KeyWord'],
+			startTime: map['StartTime'] != null ? DateTime.parse(map['StartTime']) : null,
+			endTime: map['EndTime'] != null ? DateTime.parse(map['EndTime']) : null,
+			isValid: PatientValidStatusEnum.values.firstWhere((e) => e.index == map['IsValid']),
+			pageIndex: map['PageIndex'],
+			pageSize: map['PageSize'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(keyWord != null)
+			map['KeyWord'] = keyWord;
+		if(startTime != null)
+			map['StartTime'] = JsonRpcUtils.dateFormat(startTime!);
+		if(endTime != null)
+			map['EndTime'] = JsonRpcUtils.dateFormat(endTime!);
+		map['IsValid'] = isValid.index;
+		return map;
+	}
+}
+
+class AuditReferralRecordRequest extends TokenRequest{
+	String? referralRecordCode;
+	bool isReceive;
+	String? rejectReason;
+
+	AuditReferralRecordRequest({
+		this.referralRecordCode,
+		this.isReceive = false,
+		this.rejectReason,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory AuditReferralRecordRequest.fromJson(Map<String, dynamic> map) {
+		return AuditReferralRecordRequest( 
+			referralRecordCode: map['ReferralRecordCode'],
+			isReceive: map['IsReceive'],
+			rejectReason: map['RejectReason'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(referralRecordCode != null)
+			map['ReferralRecordCode'] = referralRecordCode;
+		map['IsReceive'] = isReceive;
+		if(rejectReason != null)
+			map['RejectReason'] = rejectReason;
+		return map;
+	}
+}
+
+class WithdrawReferralRecordRequest extends TokenRequest{
+	String? referralRecordCode;
+
+	WithdrawReferralRecordRequest({
+		this.referralRecordCode,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory WithdrawReferralRecordRequest.fromJson(Map<String, dynamic> map) {
+		return WithdrawReferralRecordRequest( 
+			referralRecordCode: map['ReferralRecordCode'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(referralRecordCode != null)
+			map['ReferralRecordCode'] = referralRecordCode;
+		return map;
+	}
+}
+
+class ReferralOrganizationsQueryRequest extends TokenRequest{
+	String? keyword;
+
+	ReferralOrganizationsQueryRequest({
+		this.keyword,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory ReferralOrganizationsQueryRequest.fromJson(Map<String, dynamic> map) {
+		return ReferralOrganizationsQueryRequest( 
+			keyword: map['Keyword'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(keyword != null)
+			map['Keyword'] = keyword;
+		return map;
+	}
+}
+
+class QueryReferralPatientByCodeRequest extends FindPatientByCodeRequest{
+	String? referralRecordCode;
+
+	QueryReferralPatientByCodeRequest({
+		this.referralRecordCode,
+		String? code,
+		String? token,
+	}) : super(
+			code: code,
+			token: token,
+		);
+
+	factory QueryReferralPatientByCodeRequest.fromJson(Map<String, dynamic> map) {
+		return QueryReferralPatientByCodeRequest( 
+			referralRecordCode: map['ReferralRecordCode'],
+			code: map['Code'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(referralRecordCode != null)
+			map['ReferralRecordCode'] = referralRecordCode;
+		return map;
+	}
+}
+
+enum ReferralStatusEnum {
+	Wait,
+	Withdrawn,
+	TimedOut,
+	Accepted,
+	Rejected,
+}
+
+class CreateReportClass {
+	String? referralCode;
+	String? creatorCode;
+	String? reportCode;
+
+	CreateReportClass({
+		this.referralCode,
+		this.creatorCode,
+		this.reportCode,
+	});
+
+	factory CreateReportClass.fromJson(Map<String, dynamic> map) {
+		return CreateReportClass( 
+			referralCode: map['ReferralCode'],
+			creatorCode: map['CreatorCode'],
+			reportCode: map['ReportCode'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		if(referralCode != null)
+			map['ReferralCode'] = referralCode;
+		if(creatorCode != null)
+			map['CreatorCode'] = creatorCode;
+		if(reportCode != null)
+			map['ReportCode'] = reportCode;
+		return map;
+	}
+}
+
+class ReferralRecordDTO extends BaseDTO{
+	String? code;
+	String? patientCode;
+	DateTime? referralOutTime;
+	String? referralOutOrganizationCode;
+	String? subjectMatter;
+	String? creator;
+	String? referralInOrganizationCode;
+	String? referralInUserCode;
+	ReferralStatusEnum referralStatus;
+	String? rejectReason;
+	List<String >? referralCodeList;
+	PatientInfoDTO? patientInfo;
+	List<String >? recordCodeList;
+	List<String >? reportCodeList;
+	List<String >? remedicalDataCodeList;
+	List<CreateReportClass >? createReportCodeList;
+
+	ReferralRecordDTO({
+		this.code,
+		this.patientCode,
+		this.referralOutTime,
+		this.referralOutOrganizationCode,
+		this.subjectMatter,
+		this.creator,
+		this.referralInOrganizationCode,
+		this.referralInUserCode,
+		this.referralStatus = ReferralStatusEnum.Wait,
+		this.rejectReason,
+		this.referralCodeList,
+		this.patientInfo,
+		this.recordCodeList,
+		this.reportCodeList,
+		this.remedicalDataCodeList,
+		this.createReportCodeList,
+		DateTime? createTime,
+		DateTime? updateTime,
+	}) : super(
+			createTime: createTime,
+			updateTime: updateTime,
+		);
+
+	factory ReferralRecordDTO.fromJson(Map<String, dynamic> map) {
+		return ReferralRecordDTO( 
+			code: map['Code'],
+			patientCode: map['PatientCode'],
+			referralOutTime: map['ReferralOutTime'] != null ? DateTime.parse(map['ReferralOutTime']) : null,
+			referralOutOrganizationCode: map['ReferralOutOrganizationCode'],
+			subjectMatter: map['SubjectMatter'],
+			creator: map['Creator'],
+			referralInOrganizationCode: map['ReferralInOrganizationCode'],
+			referralInUserCode: map['ReferralInUserCode'],
+			referralStatus: ReferralStatusEnum.values.firstWhere((e) => e.index == map['ReferralStatus']),
+			rejectReason: map['RejectReason'],
+			referralCodeList: map['ReferralCodeList'] != null ? map['ReferralCodeList'].cast<String>().toList() : null,
+			patientInfo: map['PatientInfo'] != null ? PatientInfoDTO.fromJson(map['PatientInfo']) : null,
+			recordCodeList: map['RecordCodeList'] != null ? map['RecordCodeList'].cast<String>().toList() : null,
+			reportCodeList: map['ReportCodeList'] != null ? map['ReportCodeList'].cast<String>().toList() : null,
+			remedicalDataCodeList: map['RemedicalDataCodeList'] != null ? map['RemedicalDataCodeList'].cast<String>().toList() : null,
+			createReportCodeList: map['CreateReportCodeList'] != null ? (map['CreateReportCodeList'] as List).map((e)=>CreateReportClass.fromJson(e as Map<String,dynamic>)).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(code != null)
+			map['Code'] = code;
+		if(patientCode != null)
+			map['PatientCode'] = patientCode;
+		if(referralOutTime != null)
+			map['ReferralOutTime'] = JsonRpcUtils.dateFormat(referralOutTime!);
+		if(referralOutOrganizationCode != null)
+			map['ReferralOutOrganizationCode'] = referralOutOrganizationCode;
+		if(subjectMatter != null)
+			map['SubjectMatter'] = subjectMatter;
+		if(creator != null)
+			map['Creator'] = creator;
+		if(referralInOrganizationCode != null)
+			map['ReferralInOrganizationCode'] = referralInOrganizationCode;
+		if(referralInUserCode != null)
+			map['ReferralInUserCode'] = referralInUserCode;
+		map['ReferralStatus'] = referralStatus.index;
+		if(rejectReason != null)
+			map['RejectReason'] = rejectReason;
+		if(referralCodeList != null)
+			map['ReferralCodeList'] = referralCodeList;
+		if(patientInfo != null)
+			map['PatientInfo'] = patientInfo;
+		if(recordCodeList != null)
+			map['RecordCodeList'] = recordCodeList;
+		if(reportCodeList != null)
+			map['ReportCodeList'] = reportCodeList;
+		if(remedicalDataCodeList != null)
+			map['RemedicalDataCodeList'] = remedicalDataCodeList;
+		if(createReportCodeList != null)
+			map['CreateReportCodeList'] = createReportCodeList;
+		return map;
+	}
+}
+
+class ReferralRecordDetailDTO extends ReferralRecordDTO{
+	String? referralOutOrganizationName;
+	String? creatorName;
+	String? referralInOrganizationName;
+	String? referralInUserName;
+
+	ReferralRecordDetailDTO({
+		this.referralOutOrganizationName,
+		this.creatorName,
+		this.referralInOrganizationName,
+		this.referralInUserName,
+		String? code,
+		String? patientCode,
+		DateTime? referralOutTime,
+		String? referralOutOrganizationCode,
+		String? subjectMatter,
+		String? creator,
+		String? referralInOrganizationCode,
+		String? referralInUserCode,
+		ReferralStatusEnum referralStatus = ReferralStatusEnum.Wait,
+		String? rejectReason,
+		List<String >? referralCodeList,
+		PatientInfoDTO? patientInfo,
+		List<String >? recordCodeList,
+		List<String >? reportCodeList,
+		List<String >? remedicalDataCodeList,
+		List<CreateReportClass >? createReportCodeList,
+		DateTime? createTime,
+		DateTime? updateTime,
+	}) : super(
+			code: code,
+			patientCode: patientCode,
+			referralOutTime: referralOutTime,
+			referralOutOrganizationCode: referralOutOrganizationCode,
+			subjectMatter: subjectMatter,
+			creator: creator,
+			referralInOrganizationCode: referralInOrganizationCode,
+			referralInUserCode: referralInUserCode,
+			referralStatus: referralStatus,
+			rejectReason: rejectReason,
+			referralCodeList: referralCodeList,
+			patientInfo: patientInfo,
+			recordCodeList: recordCodeList,
+			reportCodeList: reportCodeList,
+			remedicalDataCodeList: remedicalDataCodeList,
+			createReportCodeList: createReportCodeList,
+			createTime: createTime,
+			updateTime: updateTime,
+		);
+
+	factory ReferralRecordDetailDTO.fromJson(Map<String, dynamic> map) {
+		return ReferralRecordDetailDTO( 
+			referralOutOrganizationName: map['ReferralOutOrganizationName'],
+			creatorName: map['CreatorName'],
+			referralInOrganizationName: map['ReferralInOrganizationName'],
+			referralInUserName: map['ReferralInUserName'],
+			code: map['Code'],
+			patientCode: map['PatientCode'],
+			referralOutTime: map['ReferralOutTime'] != null ? DateTime.parse(map['ReferralOutTime']) : null,
+			referralOutOrganizationCode: map['ReferralOutOrganizationCode'],
+			subjectMatter: map['SubjectMatter'],
+			creator: map['Creator'],
+			referralInOrganizationCode: map['ReferralInOrganizationCode'],
+			referralInUserCode: map['ReferralInUserCode'],
+			referralStatus: ReferralStatusEnum.values.firstWhere((e) => e.index == map['ReferralStatus']),
+			rejectReason: map['RejectReason'],
+			referralCodeList: map['ReferralCodeList'] != null ? map['ReferralCodeList'].cast<String>().toList() : null,
+			patientInfo: map['PatientInfo'] != null ? PatientInfoDTO.fromJson(map['PatientInfo']) : null,
+			recordCodeList: map['RecordCodeList'] != null ? map['RecordCodeList'].cast<String>().toList() : null,
+			reportCodeList: map['ReportCodeList'] != null ? map['ReportCodeList'].cast<String>().toList() : null,
+			remedicalDataCodeList: map['RemedicalDataCodeList'] != null ? map['RemedicalDataCodeList'].cast<String>().toList() : null,
+			createReportCodeList: map['CreateReportCodeList'] != null ? (map['CreateReportCodeList'] as List).map((e)=>CreateReportClass.fromJson(e as Map<String,dynamic>)).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(referralOutOrganizationName != null)
+			map['ReferralOutOrganizationName'] = referralOutOrganizationName;
+		if(creatorName != null)
+			map['CreatorName'] = creatorName;
+		if(referralInOrganizationName != null)
+			map['ReferralInOrganizationName'] = referralInOrganizationName;
+		if(referralInUserName != null)
+			map['ReferralInUserName'] = referralInUserName;
+		return map;
+	}
+}
+
+class FindPatientReferralRecordRequest extends TokenRequest{
+	String? patientCode;
+
+	FindPatientReferralRecordRequest({
+		this.patientCode,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory FindPatientReferralRecordRequest.fromJson(Map<String, dynamic> map) {
+		return FindPatientReferralRecordRequest( 
+			patientCode: map['PatientCode'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(patientCode != null)
+			map['PatientCode'] = patientCode;
+		return map;
+	}
+}
+
+class FindReferralInRecordRequest extends TokenRequest{
+	String? referralRecordCode;
+
+	FindReferralInRecordRequest({
+		this.referralRecordCode,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory FindReferralInRecordRequest.fromJson(Map<String, dynamic> map) {
+		return FindReferralInRecordRequest( 
+			referralRecordCode: map['ReferralRecordCode'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(referralRecordCode != null)
+			map['ReferralRecordCode'] = referralRecordCode;
+		return map;
+	}
+}
+
+class QueryReferralRecordsPageRequest extends GetRecordsPageRequest{
+	String? referralRecordCode;
+
+	QueryReferralRecordsPageRequest({
+		this.referralRecordCode,
+		String? patientCode,
+		QueryRecordStatusEnum queryRecordStatus = QueryRecordStatusEnum.All,
+		QueryRecordCreateTypeEnum queryRecordCreateType = QueryRecordCreateTypeEnum.All,
+		int pageIndex = 0,
+		int pageSize = 0,
+		String? token,
+	}) : super(
+			patientCode: patientCode,
+			queryRecordStatus: queryRecordStatus,
+			queryRecordCreateType: queryRecordCreateType,
+			pageIndex: pageIndex,
+			pageSize: pageSize,
+			token: token,
+		);
+
+	factory QueryReferralRecordsPageRequest.fromJson(Map<String, dynamic> map) {
+		return QueryReferralRecordsPageRequest( 
+			referralRecordCode: map['ReferralRecordCode'],
+			patientCode: map['PatientCode'],
+			queryRecordStatus: QueryRecordStatusEnum.values.firstWhere((e) => e.index == map['QueryRecordStatus']),
+			queryRecordCreateType: QueryRecordCreateTypeEnum.values.firstWhere((e) => e.index == map['QueryRecordCreateType']),
+			pageIndex: map['PageIndex'],
+			pageSize: map['PageSize'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(referralRecordCode != null)
+			map['ReferralRecordCode'] = referralRecordCode;
+		return map;
+	}
+}
+
+enum UploadFileTypeEnum {
+	Unknown,
+	EXE,
+	APK,
+	IPA,
+	ZIP,
+	DAT,
+	RAR,
+	PNG,
+	ICON,
+	BMP,
+	JPEG,
+	JPG,
+	GIF,
+	WEBP,
+	TIFF,
+	IMG,
+	PDF,
+	DOC,
+	DOCX,
+	XLS,
+	XLSX,
+	MP4,
+	MSI,
+	VID,
+}
+
+class ReportPreviewDTO {
+	String? fileToken;
+	String? thumbnailToken;
+	String? language;
+	UploadFileTypeEnum fileType;
+
+	ReportPreviewDTO({
+		this.fileToken,
+		this.thumbnailToken,
+		this.language,
+		this.fileType = UploadFileTypeEnum.Unknown,
+	});
+
+	factory ReportPreviewDTO.fromJson(Map<String, dynamic> map) {
+		return ReportPreviewDTO( 
+			fileToken: map['FileToken'],
+			thumbnailToken: map['ThumbnailToken'],
+			language: map['Language'],
+			fileType: UploadFileTypeEnum.values.firstWhere((e) => e.index == map['FileType']),
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		if(fileToken != null)
+			map['FileToken'] = fileToken;
+		if(thumbnailToken != null)
+			map['ThumbnailToken'] = thumbnailToken;
+		if(language != null)
+			map['Language'] = language;
+		map['FileType'] = fileType.index;
+		return map;
+	}
+}
+
+class ReportBaseDTO extends BaseDTO{
+	String? reportCode;
+	String? recordCode;
+	String? reportUserCode;
+	String? deviceCode;
+	String? patientCode;
+	String? patientId;
+	String? patientName;
+	List<String >? reportLabels;
+	List<String >? platformLabels;
+	List<String >? diagnosisLabels;
+	DiagnosisOrganEnum reportOrgan;
+	DateTime? reportTime;
+	String? reportUserName;
+	List<ReportPreviewDTO >? reportPreviewList;
+	String? referralRecordCode;
+
+	ReportBaseDTO({
+		this.reportCode,
+		this.recordCode,
+		this.reportUserCode,
+		this.deviceCode,
+		this.patientCode,
+		this.patientId,
+		this.patientName,
+		this.reportLabels,
+		this.platformLabels,
+		this.diagnosisLabels,
+		this.reportOrgan = DiagnosisOrganEnum.Null,
+		this.reportTime,
+		this.reportUserName,
+		this.reportPreviewList,
+		this.referralRecordCode,
+		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'],
+			patientCode: map['PatientCode'],
+			patientId: map['PatientId'],
+			patientName: map['PatientName'],
+			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: DiagnosisOrganEnum.values.firstWhere((e) => e.index == map['ReportOrgan']),
+			reportTime: map['ReportTime'] != null ? DateTime.parse(map['ReportTime']) : null,
+			reportUserName: map['ReportUserName'],
+			reportPreviewList: map['ReportPreviewList'] != null ? (map['ReportPreviewList'] as List).map((e)=>ReportPreviewDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
+			referralRecordCode: map['ReferralRecordCode'],
+			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(patientCode != null)
+			map['PatientCode'] = patientCode;
+		if(patientId != null)
+			map['PatientId'] = patientId;
+		if(patientName != null)
+			map['PatientName'] = patientName;
+		if(reportLabels != null)
+			map['ReportLabels'] = reportLabels;
+		if(platformLabels != null)
+			map['PlatformLabels'] = platformLabels;
+		if(diagnosisLabels != null)
+			map['DiagnosisLabels'] = diagnosisLabels;
+		map['ReportOrgan'] = reportOrgan.index;
+		if(reportTime != null)
+			map['ReportTime'] = JsonRpcUtils.dateFormat(reportTime!);
+		if(reportUserName != null)
+			map['ReportUserName'] = reportUserName;
+		if(reportPreviewList != null)
+			map['ReportPreviewList'] = reportPreviewList;
+		if(referralRecordCode != null)
+			map['ReferralRecordCode'] = referralRecordCode;
+		return map;
+	}
+}
+
+class ReportDTO extends ReportBaseDTO{
+	String? reportTemplateJson;
+	String? reportDatasJson;
+
+	ReportDTO({
+		this.reportTemplateJson,
+		this.reportDatasJson,
+		String? reportCode,
+		String? recordCode,
+		String? reportUserCode,
+		String? deviceCode,
+		String? patientCode,
+		String? patientId,
+		String? patientName,
+		List<String >? reportLabels,
+		List<String >? platformLabels,
+		List<String >? diagnosisLabels,
+		DiagnosisOrganEnum reportOrgan = DiagnosisOrganEnum.Null,
+		DateTime? reportTime,
+		String? reportUserName,
+		List<ReportPreviewDTO >? reportPreviewList,
+		String? referralRecordCode,
+		DateTime? createTime,
+		DateTime? updateTime,
+	}) : super(
+			reportCode: reportCode,
+			recordCode: recordCode,
+			reportUserCode: reportUserCode,
+			deviceCode: deviceCode,
+			patientCode: patientCode,
+			patientId: patientId,
+			patientName: patientName,
+			reportLabels: reportLabels,
+			platformLabels: platformLabels,
+			diagnosisLabels: diagnosisLabels,
+			reportOrgan: reportOrgan,
+			reportTime: reportTime,
+			reportUserName: reportUserName,
+			reportPreviewList: reportPreviewList,
+			referralRecordCode: referralRecordCode,
+			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'],
+			patientCode: map['PatientCode'],
+			patientId: map['PatientId'],
+			patientName: map['PatientName'],
+			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: DiagnosisOrganEnum.values.firstWhere((e) => e.index == map['ReportOrgan']),
+			reportTime: map['ReportTime'] != null ? DateTime.parse(map['ReportTime']) : null,
+			reportUserName: map['ReportUserName'],
+			reportPreviewList: map['ReportPreviewList'] != null ? (map['ReportPreviewList'] as List).map((e)=>ReportPreviewDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
+			referralRecordCode: map['ReferralRecordCode'],
+			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 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;
+	}
+}
+
+class QueryReferralExamReportRequest extends FindExamReportsRequest{
+	String? referralRecordCode;
+
+	QueryReferralExamReportRequest({
+		this.referralRecordCode,
+		String? recordCode,
+		String? token,
+	}) : super(
+			recordCode: recordCode,
+			token: token,
+		);
+
+	factory QueryReferralExamReportRequest.fromJson(Map<String, dynamic> map) {
+		return QueryReferralExamReportRequest( 
+			referralRecordCode: map['ReferralRecordCode'],
+			recordCode: map['RecordCode'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(referralRecordCode != null)
+			map['ReferralRecordCode'] = referralRecordCode;
+		return map;
+	}
+}
+
 

+ 1 - 10
lib/services/report.dart

@@ -5,6 +5,7 @@ import 'package:fis_common/json_convert.dart';
 
 import 'report.m.dart';
 
+import 'remedical.m.dart';
 import 'authentication.m.dart';
 
 
@@ -257,16 +258,6 @@ class ReportService extends JsonRpcClientBase {
 		return rpcRst;
 	}
 
-	Future<bool> addCacheReportPosterAsync(AddCacheReportPosterRequest request) async {
-		var rpcRst = await call("AddCacheReportPosterAsync", request);
-		return rpcRst;
-	}
-
-	Future<bool> removeCacheReportPosterAsync(RemoveCacheReportPosterRequest request) async {
-		var rpcRst = await call("RemoveCacheReportPosterAsync", request);
-		return rpcRst;
-	}
-
 	Future<bool> retryPushReportRecordsAsync(RetryPushReportRecordsByCodesRequest request) async {
 		var rpcRst = await call("RetryPushReportRecordsAsync", request);
 		return rpcRst;

+ 9 - 306
lib/services/report.m.dart

@@ -1,9 +1,8 @@
 import 'aIDiagnosis.m.dart';
 import 'connect.m.dart';
+import 'remedical.m.dart';
 import 'authentication.m.dart';
 
-import 'package:fis_jsonrpc/utils.dart';
-
 enum ReportTemplateStatusTypeEnum {
 	Unpublished,
 	Published,
@@ -108,235 +107,6 @@ class FindReportTemplateByCodeRequest extends TokenRequest{
 	}
 }
 
-enum UploadFileTypeEnum {
-	Unknown,
-	EXE,
-	APK,
-	IPA,
-	ZIP,
-	DAT,
-	RAR,
-	PNG,
-	ICON,
-	BMP,
-	JPEG,
-	JPG,
-	GIF,
-	WEBP,
-	TIFF,
-	IMG,
-	PDF,
-	DOC,
-	DOCX,
-	XLS,
-	XLSX,
-	MP4,
-	MSI,
-	VID,
-}
-
-class ReportPreviewDTO {
-	String? fileToken;
-	String? thumbnailToken;
-	String? language;
-	UploadFileTypeEnum fileType;
-
-	ReportPreviewDTO({
-		this.fileToken,
-		this.thumbnailToken,
-		this.language,
-		this.fileType = UploadFileTypeEnum.Unknown,
-	});
-
-	factory ReportPreviewDTO.fromJson(Map<String, dynamic> map) {
-		return ReportPreviewDTO( 
-			fileToken: map['FileToken'],
-			thumbnailToken: map['ThumbnailToken'],
-			language: map['Language'],
-			fileType: UploadFileTypeEnum.values.firstWhere((e) => e.index == map['FileType']),
-		);
-	}
-
-	Map<String, dynamic> toJson() {
-		final map = Map<String, dynamic>();
-		if(fileToken != null)
-			map['FileToken'] = fileToken;
-		if(thumbnailToken != null)
-			map['ThumbnailToken'] = thumbnailToken;
-		if(language != null)
-			map['Language'] = language;
-		map['FileType'] = fileType.index;
-		return map;
-	}
-}
-
-class ReportBaseDTO extends BaseDTO{
-	String? reportCode;
-	String? recordCode;
-	String? reportUserCode;
-	String? deviceCode;
-	String? patientCode;
-	String? patientId;
-	String? patientName;
-	List<String >? reportLabels;
-	List<String >? platformLabels;
-	List<String >? diagnosisLabels;
-	DiagnosisOrganEnum reportOrgan;
-	DateTime? reportTime;
-	String? reportUserName;
-	List<ReportPreviewDTO >? reportPreviewList;
-
-	ReportBaseDTO({
-		this.reportCode,
-		this.recordCode,
-		this.reportUserCode,
-		this.deviceCode,
-		this.patientCode,
-		this.patientId,
-		this.patientName,
-		this.reportLabels,
-		this.platformLabels,
-		this.diagnosisLabels,
-		this.reportOrgan = DiagnosisOrganEnum.Null,
-		this.reportTime,
-		this.reportUserName,
-		this.reportPreviewList,
-		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'],
-			patientCode: map['PatientCode'],
-			patientId: map['PatientId'],
-			patientName: map['PatientName'],
-			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: DiagnosisOrganEnum.values.firstWhere((e) => e.index == map['ReportOrgan']),
-			reportTime: map['ReportTime'] != null ? DateTime.parse(map['ReportTime']) : null,
-			reportUserName: map['ReportUserName'],
-			reportPreviewList: map['ReportPreviewList'] != null ? (map['ReportPreviewList'] as List).map((e)=>ReportPreviewDTO.fromJson(e as Map<String,dynamic>)).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(reportCode != null)
-			map['ReportCode'] = reportCode;
-		if(recordCode != null)
-			map['RecordCode'] = recordCode;
-		if(reportUserCode != null)
-			map['ReportUserCode'] = reportUserCode;
-		if(deviceCode != null)
-			map['DeviceCode'] = deviceCode;
-		if(patientCode != null)
-			map['PatientCode'] = patientCode;
-		if(patientId != null)
-			map['PatientId'] = patientId;
-		if(patientName != null)
-			map['PatientName'] = patientName;
-		if(reportLabels != null)
-			map['ReportLabels'] = reportLabels;
-		if(platformLabels != null)
-			map['PlatformLabels'] = platformLabels;
-		if(diagnosisLabels != null)
-			map['DiagnosisLabels'] = diagnosisLabels;
-		map['ReportOrgan'] = reportOrgan.index;
-		if(reportTime != null)
-			map['ReportTime'] = JsonRpcUtils.dateFormat(reportTime!);
-		if(reportUserName != null)
-			map['ReportUserName'] = reportUserName;
-		if(reportPreviewList != null)
-			map['ReportPreviewList'] = reportPreviewList;
-		return map;
-	}
-}
-
-class ReportDTO extends ReportBaseDTO{
-	String? reportTemplateJson;
-	String? reportDatasJson;
-
-	ReportDTO({
-		this.reportTemplateJson,
-		this.reportDatasJson,
-		String? reportCode,
-		String? recordCode,
-		String? reportUserCode,
-		String? deviceCode,
-		String? patientCode,
-		String? patientId,
-		String? patientName,
-		List<String >? reportLabels,
-		List<String >? platformLabels,
-		List<String >? diagnosisLabels,
-		DiagnosisOrganEnum reportOrgan = DiagnosisOrganEnum.Null,
-		DateTime? reportTime,
-		String? reportUserName,
-		List<ReportPreviewDTO >? reportPreviewList,
-		DateTime? createTime,
-		DateTime? updateTime,
-	}) : super(
-			reportCode: reportCode,
-			recordCode: recordCode,
-			reportUserCode: reportUserCode,
-			deviceCode: deviceCode,
-			patientCode: patientCode,
-			patientId: patientId,
-			patientName: patientName,
-			reportLabels: reportLabels,
-			platformLabels: platformLabels,
-			diagnosisLabels: diagnosisLabels,
-			reportOrgan: reportOrgan,
-			reportTime: reportTime,
-			reportUserName: reportUserName,
-			reportPreviewList: reportPreviewList,
-			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'],
-			patientCode: map['PatientCode'],
-			patientId: map['PatientId'],
-			patientName: map['PatientName'],
-			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: DiagnosisOrganEnum.values.firstWhere((e) => e.index == map['ReportOrgan']),
-			reportTime: map['ReportTime'] != null ? DateTime.parse(map['ReportTime']) : null,
-			reportUserName: map['ReportUserName'],
-			reportPreviewList: map['ReportPreviewList'] != null ? (map['ReportPreviewList'] as List).map((e)=>ReportPreviewDTO.fromJson(e as Map<String,dynamic>)).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(reportTemplateJson != null)
-			map['ReportTemplateJson'] = reportTemplateJson;
-		if(reportDatasJson != null)
-			map['ReportDatasJson'] = reportDatasJson;
-		return map;
-	}
-}
-
 class FindReportByCodeRequest extends TokenRequest{
 	String? reportCode;
 	String? language;
@@ -367,31 +137,6 @@ class FindReportByCodeRequest extends TokenRequest{
 	}
 }
 
-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;
-	}
-}
-
 class FindPatientReportsRequest extends TokenRequest{
 	String? patientCode;
 
@@ -567,6 +312,7 @@ class AddReportRequest extends TokenRequest{
 	List<String >? platformLabels;
 	List<String >? diagnosisLabels;
 	DiagnosisOrganEnum reportOrgan;
+	String? referralRecordCode;
 
 	AddReportRequest({
 		this.recordCode,
@@ -577,6 +323,7 @@ class AddReportRequest extends TokenRequest{
 		this.platformLabels,
 		this.diagnosisLabels,
 		this.reportOrgan = DiagnosisOrganEnum.Null,
+		this.referralRecordCode,
 		String? token,
 	}) : super(
 			token: token,
@@ -592,6 +339,7 @@ class AddReportRequest extends TokenRequest{
 			platformLabels: map['PlatformLabels'] != null ? map['PlatformLabels'].cast<String>().toList() : null,
 			diagnosisLabels: map['DiagnosisLabels'] != null ? map['DiagnosisLabels'].cast<String>().toList() : null,
 			reportOrgan: DiagnosisOrganEnum.values.firstWhere((e) => e.index == map['ReportOrgan']),
+			referralRecordCode: map['ReferralRecordCode'],
 			token: map['Token'],
 		);
 	}
@@ -613,6 +361,8 @@ class AddReportRequest extends TokenRequest{
 		if(diagnosisLabels != null)
 			map['DiagnosisLabels'] = diagnosisLabels;
 		map['ReportOrgan'] = reportOrgan.index;
+		if(referralRecordCode != null)
+			map['ReferralRecordCode'] = referralRecordCode;
 		return map;
 	}
 }
@@ -630,6 +380,7 @@ class ModifyReportRequest extends AddReportRequest{
 		List<String >? platformLabels,
 		List<String >? diagnosisLabels,
 		DiagnosisOrganEnum reportOrgan = DiagnosisOrganEnum.Null,
+		String? referralRecordCode,
 		String? token,
 	}) : super(
 			recordCode: recordCode,
@@ -640,6 +391,7 @@ class ModifyReportRequest extends AddReportRequest{
 			platformLabels: platformLabels,
 			diagnosisLabels: diagnosisLabels,
 			reportOrgan: reportOrgan,
+			referralRecordCode: referralRecordCode,
 			token: token,
 		);
 
@@ -654,6 +406,7 @@ class ModifyReportRequest extends AddReportRequest{
 			platformLabels: map['PlatformLabels'] != null ? map['PlatformLabels'].cast<String>().toList() : null,
 			diagnosisLabels: map['DiagnosisLabels'] != null ? map['DiagnosisLabels'].cast<String>().toList() : null,
 			reportOrgan: DiagnosisOrganEnum.values.firstWhere((e) => e.index == map['ReportOrgan']),
+			referralRecordCode: map['ReferralRecordCode'],
 			token: map['Token'],
 		);
 	}
@@ -1705,56 +1458,6 @@ class SetUserDefaultThesaurusRequest extends TokenRequest{
 	}
 }
 
-class AddCacheReportPosterRequest extends TokenRequest{
-	String? reportPosterCode;
-
-	AddCacheReportPosterRequest({
-		this.reportPosterCode,
-		String? token,
-	}) : super(
-			token: token,
-		);
-
-	factory AddCacheReportPosterRequest.fromJson(Map<String, dynamic> map) {
-		return AddCacheReportPosterRequest( 
-			reportPosterCode: map['ReportPosterCode'],
-			token: map['Token'],
-		);
-	}
-
-	Map<String, dynamic> toJson() {
-		final map = super.toJson();
-		if(reportPosterCode != null)
-			map['ReportPosterCode'] = reportPosterCode;
-		return map;
-	}
-}
-
-class RemoveCacheReportPosterRequest extends TokenRequest{
-	String? reportPosterCode;
-
-	RemoveCacheReportPosterRequest({
-		this.reportPosterCode,
-		String? token,
-	}) : super(
-			token: token,
-		);
-
-	factory RemoveCacheReportPosterRequest.fromJson(Map<String, dynamic> map) {
-		return RemoveCacheReportPosterRequest( 
-			reportPosterCode: map['ReportPosterCode'],
-			token: map['Token'],
-		);
-	}
-
-	Map<String, dynamic> toJson() {
-		final map = super.toJson();
-		if(reportPosterCode != null)
-			map['ReportPosterCode'] = reportPosterCode;
-		return map;
-	}
-}
-
 class RetryPushReportRecordsByCodesRequest extends TokenRequest{
 	List<String >? codes;
 

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

@@ -60,9 +60,11 @@ class StorageServiceSettingDTO {
 
 class FileServiceRequest extends TokenRequest{
 	String? fileName;
+	bool isRechristen;
 
 	FileServiceRequest({
 		this.fileName,
+		this.isRechristen = false,
 		String? token,
 	}) : super(
 			token: token,
@@ -71,6 +73,7 @@ class FileServiceRequest extends TokenRequest{
 	factory FileServiceRequest.fromJson(Map<String, dynamic> map) {
 		return FileServiceRequest( 
 			fileName: map['FileName'],
+			isRechristen: map['IsRechristen'],
 			token: map['Token'],
 		);
 	}
@@ -79,6 +82,7 @@ class FileServiceRequest extends TokenRequest{
 		final map = super.toJson();
 		if(fileName != null)
 			map['FileName'] = fileName;
+		map['IsRechristen'] = isRechristen;
 		return map;
 	}
 }

+ 4 - 4
lib/services/vinnoServer.dart

@@ -22,13 +22,13 @@ class VinnoServerService extends JsonRpcClientBase {
 		FJsonConvert.setDecoder((map) => ServerInfoDTO.fromJson(map));
 	}
 
-	Future<bool> updateServerInfoToCacheAsync(UpdateServerInfoRequest request) async {
-		var rpcRst = await call("UpdateServerInfoToCacheAsync", request);
+	Future<bool> updateServerInfoAsync(UpdateServerInfoRequest request) async {
+		var rpcRst = await call("UpdateServerInfoAsync", request);
 		return rpcRst;
 	}
 
-	Future<List<ServerInfoDTO>> getServerInfoFromCacheAsync(QueryServerInfoRequest request) async {
-		var rpcRst = await call("GetServerInfoFromCacheAsync", request);
+	Future<List<ServerInfoDTO>> getServerInfoListAsync(QueryServerInfoRequest request) async {
+		var rpcRst = await call("GetServerInfoListAsync", request);
 		var result = (rpcRst as List).map((e)=>ServerInfoDTO.fromJson(e as Map<String, dynamic>)).toList();
 		return result;
 	}