Browse Source

同步Server最新接口

loki.wu 2 years ago
parent
commit
4faedec2d3

+ 3 - 0
lib/rpc.dart

@@ -69,6 +69,9 @@ class JsonRpcProxy {
 	EmailService get email =>
 	findService(() => new EmailService(currentHostAddress));
 
+	FastestServerInteractionCenterService get fastestServerInteractionCenter =>
+	findService(() => new FastestServerInteractionCenterService(currentHostAddress));
+
 	IdentityApplyService get identityApply =>
 	findService(() => new IdentityApplyService(currentHostAddress));
 

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

@@ -75,6 +75,7 @@ enum DiagnosisOrganEnum {
 	Cholecyst,
 	Kidney,
 	Spleen,
+	CarotidArtery,
 }
 
 class AIDiagnosisRect {

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

@@ -182,6 +182,2003 @@ enum CustomerRpcCode {
 	TokenExpired,
 	InvalidTokenVersion,
 	IPInBlacklist,
+	placeHolder_5,
+	placeHolder_6,
+	placeHolder_7,
+	placeHolder_8,
+	placeHolder_9,
+	placeHolder_10,
+	placeHolder_11,
+	placeHolder_12,
+	placeHolder_13,
+	placeHolder_14,
+	placeHolder_15,
+	placeHolder_16,
+	placeHolder_17,
+	placeHolder_18,
+	placeHolder_19,
+	placeHolder_20,
+	placeHolder_21,
+	placeHolder_22,
+	placeHolder_23,
+	placeHolder_24,
+	placeHolder_25,
+	placeHolder_26,
+	placeHolder_27,
+	placeHolder_28,
+	placeHolder_29,
+	placeHolder_30,
+	placeHolder_31,
+	placeHolder_32,
+	placeHolder_33,
+	placeHolder_34,
+	placeHolder_35,
+	placeHolder_36,
+	placeHolder_37,
+	placeHolder_38,
+	placeHolder_39,
+	placeHolder_40,
+	placeHolder_41,
+	placeHolder_42,
+	placeHolder_43,
+	placeHolder_44,
+	placeHolder_45,
+	placeHolder_46,
+	placeHolder_47,
+	placeHolder_48,
+	placeHolder_49,
+	placeHolder_50,
+	placeHolder_51,
+	placeHolder_52,
+	placeHolder_53,
+	placeHolder_54,
+	placeHolder_55,
+	placeHolder_56,
+	placeHolder_57,
+	placeHolder_58,
+	placeHolder_59,
+	placeHolder_60,
+	placeHolder_61,
+	placeHolder_62,
+	placeHolder_63,
+	placeHolder_64,
+	placeHolder_65,
+	placeHolder_66,
+	placeHolder_67,
+	placeHolder_68,
+	placeHolder_69,
+	placeHolder_70,
+	placeHolder_71,
+	placeHolder_72,
+	placeHolder_73,
+	placeHolder_74,
+	placeHolder_75,
+	placeHolder_76,
+	placeHolder_77,
+	placeHolder_78,
+	placeHolder_79,
+	placeHolder_80,
+	placeHolder_81,
+	placeHolder_82,
+	placeHolder_83,
+	placeHolder_84,
+	placeHolder_85,
+	placeHolder_86,
+	placeHolder_87,
+	placeHolder_88,
+	placeHolder_89,
+	placeHolder_90,
+	placeHolder_91,
+	placeHolder_92,
+	placeHolder_93,
+	placeHolder_94,
+	placeHolder_95,
+	placeHolder_96,
+	placeHolder_97,
+	placeHolder_98,
+	placeHolder_99,
+	placeHolder_100,
+	placeHolder_101,
+	placeHolder_102,
+	placeHolder_103,
+	placeHolder_104,
+	placeHolder_105,
+	placeHolder_106,
+	placeHolder_107,
+	placeHolder_108,
+	placeHolder_109,
+	placeHolder_110,
+	placeHolder_111,
+	placeHolder_112,
+	placeHolder_113,
+	placeHolder_114,
+	placeHolder_115,
+	placeHolder_116,
+	placeHolder_117,
+	placeHolder_118,
+	placeHolder_119,
+	placeHolder_120,
+	placeHolder_121,
+	placeHolder_122,
+	placeHolder_123,
+	placeHolder_124,
+	placeHolder_125,
+	placeHolder_126,
+	placeHolder_127,
+	placeHolder_128,
+	placeHolder_129,
+	placeHolder_130,
+	placeHolder_131,
+	placeHolder_132,
+	placeHolder_133,
+	placeHolder_134,
+	placeHolder_135,
+	placeHolder_136,
+	placeHolder_137,
+	placeHolder_138,
+	placeHolder_139,
+	placeHolder_140,
+	placeHolder_141,
+	placeHolder_142,
+	placeHolder_143,
+	placeHolder_144,
+	placeHolder_145,
+	placeHolder_146,
+	placeHolder_147,
+	placeHolder_148,
+	placeHolder_149,
+	placeHolder_150,
+	placeHolder_151,
+	placeHolder_152,
+	placeHolder_153,
+	placeHolder_154,
+	placeHolder_155,
+	placeHolder_156,
+	placeHolder_157,
+	placeHolder_158,
+	placeHolder_159,
+	placeHolder_160,
+	placeHolder_161,
+	placeHolder_162,
+	placeHolder_163,
+	placeHolder_164,
+	placeHolder_165,
+	placeHolder_166,
+	placeHolder_167,
+	placeHolder_168,
+	placeHolder_169,
+	placeHolder_170,
+	placeHolder_171,
+	placeHolder_172,
+	placeHolder_173,
+	placeHolder_174,
+	placeHolder_175,
+	placeHolder_176,
+	placeHolder_177,
+	placeHolder_178,
+	placeHolder_179,
+	placeHolder_180,
+	placeHolder_181,
+	placeHolder_182,
+	placeHolder_183,
+	placeHolder_184,
+	placeHolder_185,
+	placeHolder_186,
+	placeHolder_187,
+	placeHolder_188,
+	placeHolder_189,
+	placeHolder_190,
+	placeHolder_191,
+	placeHolder_192,
+	placeHolder_193,
+	placeHolder_194,
+	placeHolder_195,
+	placeHolder_196,
+	placeHolder_197,
+	placeHolder_198,
+	placeHolder_199,
+	placeHolder_200,
+	placeHolder_201,
+	placeHolder_202,
+	placeHolder_203,
+	placeHolder_204,
+	placeHolder_205,
+	placeHolder_206,
+	placeHolder_207,
+	placeHolder_208,
+	placeHolder_209,
+	placeHolder_210,
+	placeHolder_211,
+	placeHolder_212,
+	placeHolder_213,
+	placeHolder_214,
+	placeHolder_215,
+	placeHolder_216,
+	placeHolder_217,
+	placeHolder_218,
+	placeHolder_219,
+	placeHolder_220,
+	placeHolder_221,
+	placeHolder_222,
+	placeHolder_223,
+	placeHolder_224,
+	placeHolder_225,
+	placeHolder_226,
+	placeHolder_227,
+	placeHolder_228,
+	placeHolder_229,
+	placeHolder_230,
+	placeHolder_231,
+	placeHolder_232,
+	placeHolder_233,
+	placeHolder_234,
+	placeHolder_235,
+	placeHolder_236,
+	placeHolder_237,
+	placeHolder_238,
+	placeHolder_239,
+	placeHolder_240,
+	placeHolder_241,
+	placeHolder_242,
+	placeHolder_243,
+	placeHolder_244,
+	placeHolder_245,
+	placeHolder_246,
+	placeHolder_247,
+	placeHolder_248,
+	placeHolder_249,
+	placeHolder_250,
+	placeHolder_251,
+	placeHolder_252,
+	placeHolder_253,
+	placeHolder_254,
+	placeHolder_255,
+	placeHolder_256,
+	placeHolder_257,
+	placeHolder_258,
+	placeHolder_259,
+	placeHolder_260,
+	placeHolder_261,
+	placeHolder_262,
+	placeHolder_263,
+	placeHolder_264,
+	placeHolder_265,
+	placeHolder_266,
+	placeHolder_267,
+	placeHolder_268,
+	placeHolder_269,
+	placeHolder_270,
+	placeHolder_271,
+	placeHolder_272,
+	placeHolder_273,
+	placeHolder_274,
+	placeHolder_275,
+	placeHolder_276,
+	placeHolder_277,
+	placeHolder_278,
+	placeHolder_279,
+	placeHolder_280,
+	placeHolder_281,
+	placeHolder_282,
+	placeHolder_283,
+	placeHolder_284,
+	placeHolder_285,
+	placeHolder_286,
+	placeHolder_287,
+	placeHolder_288,
+	placeHolder_289,
+	placeHolder_290,
+	placeHolder_291,
+	placeHolder_292,
+	placeHolder_293,
+	placeHolder_294,
+	placeHolder_295,
+	placeHolder_296,
+	placeHolder_297,
+	placeHolder_298,
+	placeHolder_299,
+	placeHolder_300,
+	placeHolder_301,
+	placeHolder_302,
+	placeHolder_303,
+	placeHolder_304,
+	placeHolder_305,
+	placeHolder_306,
+	placeHolder_307,
+	placeHolder_308,
+	placeHolder_309,
+	placeHolder_310,
+	placeHolder_311,
+	placeHolder_312,
+	placeHolder_313,
+	placeHolder_314,
+	placeHolder_315,
+	placeHolder_316,
+	placeHolder_317,
+	placeHolder_318,
+	placeHolder_319,
+	placeHolder_320,
+	placeHolder_321,
+	placeHolder_322,
+	placeHolder_323,
+	placeHolder_324,
+	placeHolder_325,
+	placeHolder_326,
+	placeHolder_327,
+	placeHolder_328,
+	placeHolder_329,
+	placeHolder_330,
+	placeHolder_331,
+	placeHolder_332,
+	placeHolder_333,
+	placeHolder_334,
+	placeHolder_335,
+	placeHolder_336,
+	placeHolder_337,
+	placeHolder_338,
+	placeHolder_339,
+	placeHolder_340,
+	placeHolder_341,
+	placeHolder_342,
+	placeHolder_343,
+	placeHolder_344,
+	placeHolder_345,
+	placeHolder_346,
+	placeHolder_347,
+	placeHolder_348,
+	placeHolder_349,
+	placeHolder_350,
+	placeHolder_351,
+	placeHolder_352,
+	placeHolder_353,
+	placeHolder_354,
+	placeHolder_355,
+	placeHolder_356,
+	placeHolder_357,
+	placeHolder_358,
+	placeHolder_359,
+	placeHolder_360,
+	placeHolder_361,
+	placeHolder_362,
+	placeHolder_363,
+	placeHolder_364,
+	placeHolder_365,
+	placeHolder_366,
+	placeHolder_367,
+	placeHolder_368,
+	placeHolder_369,
+	placeHolder_370,
+	placeHolder_371,
+	placeHolder_372,
+	placeHolder_373,
+	placeHolder_374,
+	placeHolder_375,
+	placeHolder_376,
+	placeHolder_377,
+	placeHolder_378,
+	placeHolder_379,
+	placeHolder_380,
+	placeHolder_381,
+	placeHolder_382,
+	placeHolder_383,
+	placeHolder_384,
+	placeHolder_385,
+	placeHolder_386,
+	placeHolder_387,
+	placeHolder_388,
+	placeHolder_389,
+	placeHolder_390,
+	placeHolder_391,
+	placeHolder_392,
+	placeHolder_393,
+	placeHolder_394,
+	placeHolder_395,
+	placeHolder_396,
+	placeHolder_397,
+	placeHolder_398,
+	placeHolder_399,
+	placeHolder_400,
+	placeHolder_401,
+	placeHolder_402,
+	placeHolder_403,
+	placeHolder_404,
+	placeHolder_405,
+	placeHolder_406,
+	placeHolder_407,
+	placeHolder_408,
+	placeHolder_409,
+	placeHolder_410,
+	placeHolder_411,
+	placeHolder_412,
+	placeHolder_413,
+	placeHolder_414,
+	placeHolder_415,
+	placeHolder_416,
+	placeHolder_417,
+	placeHolder_418,
+	placeHolder_419,
+	placeHolder_420,
+	placeHolder_421,
+	placeHolder_422,
+	placeHolder_423,
+	placeHolder_424,
+	placeHolder_425,
+	placeHolder_426,
+	placeHolder_427,
+	placeHolder_428,
+	placeHolder_429,
+	placeHolder_430,
+	placeHolder_431,
+	placeHolder_432,
+	placeHolder_433,
+	placeHolder_434,
+	placeHolder_435,
+	placeHolder_436,
+	placeHolder_437,
+	placeHolder_438,
+	placeHolder_439,
+	placeHolder_440,
+	placeHolder_441,
+	placeHolder_442,
+	placeHolder_443,
+	placeHolder_444,
+	placeHolder_445,
+	placeHolder_446,
+	placeHolder_447,
+	placeHolder_448,
+	placeHolder_449,
+	placeHolder_450,
+	placeHolder_451,
+	placeHolder_452,
+	placeHolder_453,
+	placeHolder_454,
+	placeHolder_455,
+	placeHolder_456,
+	placeHolder_457,
+	placeHolder_458,
+	placeHolder_459,
+	placeHolder_460,
+	placeHolder_461,
+	placeHolder_462,
+	placeHolder_463,
+	placeHolder_464,
+	placeHolder_465,
+	placeHolder_466,
+	placeHolder_467,
+	placeHolder_468,
+	placeHolder_469,
+	placeHolder_470,
+	placeHolder_471,
+	placeHolder_472,
+	placeHolder_473,
+	placeHolder_474,
+	placeHolder_475,
+	placeHolder_476,
+	placeHolder_477,
+	placeHolder_478,
+	placeHolder_479,
+	placeHolder_480,
+	placeHolder_481,
+	placeHolder_482,
+	placeHolder_483,
+	placeHolder_484,
+	placeHolder_485,
+	placeHolder_486,
+	placeHolder_487,
+	placeHolder_488,
+	placeHolder_489,
+	placeHolder_490,
+	placeHolder_491,
+	placeHolder_492,
+	placeHolder_493,
+	placeHolder_494,
+	placeHolder_495,
+	placeHolder_496,
+	placeHolder_497,
+	placeHolder_498,
+	placeHolder_499,
+	placeHolder_500,
+	placeHolder_501,
+	placeHolder_502,
+	placeHolder_503,
+	placeHolder_504,
+	placeHolder_505,
+	placeHolder_506,
+	placeHolder_507,
+	placeHolder_508,
+	placeHolder_509,
+	placeHolder_510,
+	placeHolder_511,
+	placeHolder_512,
+	placeHolder_513,
+	placeHolder_514,
+	placeHolder_515,
+	placeHolder_516,
+	placeHolder_517,
+	placeHolder_518,
+	placeHolder_519,
+	placeHolder_520,
+	placeHolder_521,
+	placeHolder_522,
+	placeHolder_523,
+	placeHolder_524,
+	placeHolder_525,
+	placeHolder_526,
+	placeHolder_527,
+	placeHolder_528,
+	placeHolder_529,
+	placeHolder_530,
+	placeHolder_531,
+	placeHolder_532,
+	placeHolder_533,
+	placeHolder_534,
+	placeHolder_535,
+	placeHolder_536,
+	placeHolder_537,
+	placeHolder_538,
+	placeHolder_539,
+	placeHolder_540,
+	placeHolder_541,
+	placeHolder_542,
+	placeHolder_543,
+	placeHolder_544,
+	placeHolder_545,
+	placeHolder_546,
+	placeHolder_547,
+	placeHolder_548,
+	placeHolder_549,
+	placeHolder_550,
+	placeHolder_551,
+	placeHolder_552,
+	placeHolder_553,
+	placeHolder_554,
+	placeHolder_555,
+	placeHolder_556,
+	placeHolder_557,
+	placeHolder_558,
+	placeHolder_559,
+	placeHolder_560,
+	placeHolder_561,
+	placeHolder_562,
+	placeHolder_563,
+	placeHolder_564,
+	placeHolder_565,
+	placeHolder_566,
+	placeHolder_567,
+	placeHolder_568,
+	placeHolder_569,
+	placeHolder_570,
+	placeHolder_571,
+	placeHolder_572,
+	placeHolder_573,
+	placeHolder_574,
+	placeHolder_575,
+	placeHolder_576,
+	placeHolder_577,
+	placeHolder_578,
+	placeHolder_579,
+	placeHolder_580,
+	placeHolder_581,
+	placeHolder_582,
+	placeHolder_583,
+	placeHolder_584,
+	placeHolder_585,
+	placeHolder_586,
+	placeHolder_587,
+	placeHolder_588,
+	placeHolder_589,
+	placeHolder_590,
+	placeHolder_591,
+	placeHolder_592,
+	placeHolder_593,
+	placeHolder_594,
+	placeHolder_595,
+	placeHolder_596,
+	placeHolder_597,
+	placeHolder_598,
+	placeHolder_599,
+	placeHolder_600,
+	placeHolder_601,
+	placeHolder_602,
+	placeHolder_603,
+	placeHolder_604,
+	placeHolder_605,
+	placeHolder_606,
+	placeHolder_607,
+	placeHolder_608,
+	placeHolder_609,
+	placeHolder_610,
+	placeHolder_611,
+	placeHolder_612,
+	placeHolder_613,
+	placeHolder_614,
+	placeHolder_615,
+	placeHolder_616,
+	placeHolder_617,
+	placeHolder_618,
+	placeHolder_619,
+	placeHolder_620,
+	placeHolder_621,
+	placeHolder_622,
+	placeHolder_623,
+	placeHolder_624,
+	placeHolder_625,
+	placeHolder_626,
+	placeHolder_627,
+	placeHolder_628,
+	placeHolder_629,
+	placeHolder_630,
+	placeHolder_631,
+	placeHolder_632,
+	placeHolder_633,
+	placeHolder_634,
+	placeHolder_635,
+	placeHolder_636,
+	placeHolder_637,
+	placeHolder_638,
+	placeHolder_639,
+	placeHolder_640,
+	placeHolder_641,
+	placeHolder_642,
+	placeHolder_643,
+	placeHolder_644,
+	placeHolder_645,
+	placeHolder_646,
+	placeHolder_647,
+	placeHolder_648,
+	placeHolder_649,
+	placeHolder_650,
+	placeHolder_651,
+	placeHolder_652,
+	placeHolder_653,
+	placeHolder_654,
+	placeHolder_655,
+	placeHolder_656,
+	placeHolder_657,
+	placeHolder_658,
+	placeHolder_659,
+	placeHolder_660,
+	placeHolder_661,
+	placeHolder_662,
+	placeHolder_663,
+	placeHolder_664,
+	placeHolder_665,
+	placeHolder_666,
+	placeHolder_667,
+	placeHolder_668,
+	placeHolder_669,
+	placeHolder_670,
+	placeHolder_671,
+	placeHolder_672,
+	placeHolder_673,
+	placeHolder_674,
+	placeHolder_675,
+	placeHolder_676,
+	placeHolder_677,
+	placeHolder_678,
+	placeHolder_679,
+	placeHolder_680,
+	placeHolder_681,
+	placeHolder_682,
+	placeHolder_683,
+	placeHolder_684,
+	placeHolder_685,
+	placeHolder_686,
+	placeHolder_687,
+	placeHolder_688,
+	placeHolder_689,
+	placeHolder_690,
+	placeHolder_691,
+	placeHolder_692,
+	placeHolder_693,
+	placeHolder_694,
+	placeHolder_695,
+	placeHolder_696,
+	placeHolder_697,
+	placeHolder_698,
+	placeHolder_699,
+	placeHolder_700,
+	placeHolder_701,
+	placeHolder_702,
+	placeHolder_703,
+	placeHolder_704,
+	placeHolder_705,
+	placeHolder_706,
+	placeHolder_707,
+	placeHolder_708,
+	placeHolder_709,
+	placeHolder_710,
+	placeHolder_711,
+	placeHolder_712,
+	placeHolder_713,
+	placeHolder_714,
+	placeHolder_715,
+	placeHolder_716,
+	placeHolder_717,
+	placeHolder_718,
+	placeHolder_719,
+	placeHolder_720,
+	placeHolder_721,
+	placeHolder_722,
+	placeHolder_723,
+	placeHolder_724,
+	placeHolder_725,
+	placeHolder_726,
+	placeHolder_727,
+	placeHolder_728,
+	placeHolder_729,
+	placeHolder_730,
+	placeHolder_731,
+	placeHolder_732,
+	placeHolder_733,
+	placeHolder_734,
+	placeHolder_735,
+	placeHolder_736,
+	placeHolder_737,
+	placeHolder_738,
+	placeHolder_739,
+	placeHolder_740,
+	placeHolder_741,
+	placeHolder_742,
+	placeHolder_743,
+	placeHolder_744,
+	placeHolder_745,
+	placeHolder_746,
+	placeHolder_747,
+	placeHolder_748,
+	placeHolder_749,
+	placeHolder_750,
+	placeHolder_751,
+	placeHolder_752,
+	placeHolder_753,
+	placeHolder_754,
+	placeHolder_755,
+	placeHolder_756,
+	placeHolder_757,
+	placeHolder_758,
+	placeHolder_759,
+	placeHolder_760,
+	placeHolder_761,
+	placeHolder_762,
+	placeHolder_763,
+	placeHolder_764,
+	placeHolder_765,
+	placeHolder_766,
+	placeHolder_767,
+	placeHolder_768,
+	placeHolder_769,
+	placeHolder_770,
+	placeHolder_771,
+	placeHolder_772,
+	placeHolder_773,
+	placeHolder_774,
+	placeHolder_775,
+	placeHolder_776,
+	placeHolder_777,
+	placeHolder_778,
+	placeHolder_779,
+	placeHolder_780,
+	placeHolder_781,
+	placeHolder_782,
+	placeHolder_783,
+	placeHolder_784,
+	placeHolder_785,
+	placeHolder_786,
+	placeHolder_787,
+	placeHolder_788,
+	placeHolder_789,
+	placeHolder_790,
+	placeHolder_791,
+	placeHolder_792,
+	placeHolder_793,
+	placeHolder_794,
+	placeHolder_795,
+	placeHolder_796,
+	placeHolder_797,
+	placeHolder_798,
+	placeHolder_799,
+	placeHolder_800,
+	placeHolder_801,
+	placeHolder_802,
+	placeHolder_803,
+	placeHolder_804,
+	placeHolder_805,
+	placeHolder_806,
+	placeHolder_807,
+	placeHolder_808,
+	placeHolder_809,
+	placeHolder_810,
+	placeHolder_811,
+	placeHolder_812,
+	placeHolder_813,
+	placeHolder_814,
+	placeHolder_815,
+	placeHolder_816,
+	placeHolder_817,
+	placeHolder_818,
+	placeHolder_819,
+	placeHolder_820,
+	placeHolder_821,
+	placeHolder_822,
+	placeHolder_823,
+	placeHolder_824,
+	placeHolder_825,
+	placeHolder_826,
+	placeHolder_827,
+	placeHolder_828,
+	placeHolder_829,
+	placeHolder_830,
+	placeHolder_831,
+	placeHolder_832,
+	placeHolder_833,
+	placeHolder_834,
+	placeHolder_835,
+	placeHolder_836,
+	placeHolder_837,
+	placeHolder_838,
+	placeHolder_839,
+	placeHolder_840,
+	placeHolder_841,
+	placeHolder_842,
+	placeHolder_843,
+	placeHolder_844,
+	placeHolder_845,
+	placeHolder_846,
+	placeHolder_847,
+	placeHolder_848,
+	placeHolder_849,
+	placeHolder_850,
+	placeHolder_851,
+	placeHolder_852,
+	placeHolder_853,
+	placeHolder_854,
+	placeHolder_855,
+	placeHolder_856,
+	placeHolder_857,
+	placeHolder_858,
+	placeHolder_859,
+	placeHolder_860,
+	placeHolder_861,
+	placeHolder_862,
+	placeHolder_863,
+	placeHolder_864,
+	placeHolder_865,
+	placeHolder_866,
+	placeHolder_867,
+	placeHolder_868,
+	placeHolder_869,
+	placeHolder_870,
+	placeHolder_871,
+	placeHolder_872,
+	placeHolder_873,
+	placeHolder_874,
+	placeHolder_875,
+	placeHolder_876,
+	placeHolder_877,
+	placeHolder_878,
+	placeHolder_879,
+	placeHolder_880,
+	placeHolder_881,
+	placeHolder_882,
+	placeHolder_883,
+	placeHolder_884,
+	placeHolder_885,
+	placeHolder_886,
+	placeHolder_887,
+	placeHolder_888,
+	placeHolder_889,
+	placeHolder_890,
+	placeHolder_891,
+	placeHolder_892,
+	placeHolder_893,
+	placeHolder_894,
+	placeHolder_895,
+	placeHolder_896,
+	placeHolder_897,
+	placeHolder_898,
+	placeHolder_899,
+	placeHolder_900,
+	placeHolder_901,
+	placeHolder_902,
+	placeHolder_903,
+	placeHolder_904,
+	placeHolder_905,
+	placeHolder_906,
+	placeHolder_907,
+	placeHolder_908,
+	placeHolder_909,
+	placeHolder_910,
+	placeHolder_911,
+	placeHolder_912,
+	placeHolder_913,
+	placeHolder_914,
+	placeHolder_915,
+	placeHolder_916,
+	placeHolder_917,
+	placeHolder_918,
+	placeHolder_919,
+	placeHolder_920,
+	placeHolder_921,
+	placeHolder_922,
+	placeHolder_923,
+	placeHolder_924,
+	placeHolder_925,
+	placeHolder_926,
+	placeHolder_927,
+	placeHolder_928,
+	placeHolder_929,
+	placeHolder_930,
+	placeHolder_931,
+	placeHolder_932,
+	placeHolder_933,
+	placeHolder_934,
+	placeHolder_935,
+	placeHolder_936,
+	placeHolder_937,
+	placeHolder_938,
+	placeHolder_939,
+	placeHolder_940,
+	placeHolder_941,
+	placeHolder_942,
+	placeHolder_943,
+	placeHolder_944,
+	placeHolder_945,
+	placeHolder_946,
+	placeHolder_947,
+	placeHolder_948,
+	placeHolder_949,
+	placeHolder_950,
+	placeHolder_951,
+	placeHolder_952,
+	placeHolder_953,
+	placeHolder_954,
+	placeHolder_955,
+	placeHolder_956,
+	placeHolder_957,
+	placeHolder_958,
+	placeHolder_959,
+	placeHolder_960,
+	placeHolder_961,
+	placeHolder_962,
+	placeHolder_963,
+	placeHolder_964,
+	placeHolder_965,
+	placeHolder_966,
+	placeHolder_967,
+	placeHolder_968,
+	placeHolder_969,
+	placeHolder_970,
+	placeHolder_971,
+	placeHolder_972,
+	placeHolder_973,
+	placeHolder_974,
+	placeHolder_975,
+	placeHolder_976,
+	placeHolder_977,
+	placeHolder_978,
+	placeHolder_979,
+	placeHolder_980,
+	placeHolder_981,
+	placeHolder_982,
+	placeHolder_983,
+	placeHolder_984,
+	placeHolder_985,
+	placeHolder_986,
+	placeHolder_987,
+	placeHolder_988,
+	placeHolder_989,
+	placeHolder_990,
+	placeHolder_991,
+	placeHolder_992,
+	placeHolder_993,
+	placeHolder_994,
+	placeHolder_995,
+	placeHolder_996,
+	placeHolder_997,
+	placeHolder_998,
+	placeHolder_999,
+	placeHolder_1000,
+	placeHolder_1001,
+	placeHolder_1002,
+	placeHolder_1003,
+	placeHolder_1004,
+	placeHolder_1005,
+	placeHolder_1006,
+	placeHolder_1007,
+	placeHolder_1008,
+	placeHolder_1009,
+	placeHolder_1010,
+	placeHolder_1011,
+	placeHolder_1012,
+	placeHolder_1013,
+	placeHolder_1014,
+	placeHolder_1015,
+	placeHolder_1016,
+	placeHolder_1017,
+	placeHolder_1018,
+	placeHolder_1019,
+	placeHolder_1020,
+	placeHolder_1021,
+	placeHolder_1022,
+	placeHolder_1023,
+	placeHolder_1024,
+	placeHolder_1025,
+	placeHolder_1026,
+	placeHolder_1027,
+	placeHolder_1028,
+	placeHolder_1029,
+	placeHolder_1030,
+	placeHolder_1031,
+	placeHolder_1032,
+	placeHolder_1033,
+	placeHolder_1034,
+	placeHolder_1035,
+	placeHolder_1036,
+	placeHolder_1037,
+	placeHolder_1038,
+	placeHolder_1039,
+	placeHolder_1040,
+	placeHolder_1041,
+	placeHolder_1042,
+	placeHolder_1043,
+	placeHolder_1044,
+	placeHolder_1045,
+	placeHolder_1046,
+	placeHolder_1047,
+	placeHolder_1048,
+	placeHolder_1049,
+	placeHolder_1050,
+	placeHolder_1051,
+	placeHolder_1052,
+	placeHolder_1053,
+	placeHolder_1054,
+	placeHolder_1055,
+	placeHolder_1056,
+	placeHolder_1057,
+	placeHolder_1058,
+	placeHolder_1059,
+	placeHolder_1060,
+	placeHolder_1061,
+	placeHolder_1062,
+	placeHolder_1063,
+	placeHolder_1064,
+	placeHolder_1065,
+	placeHolder_1066,
+	placeHolder_1067,
+	placeHolder_1068,
+	placeHolder_1069,
+	placeHolder_1070,
+	placeHolder_1071,
+	placeHolder_1072,
+	placeHolder_1073,
+	placeHolder_1074,
+	placeHolder_1075,
+	placeHolder_1076,
+	placeHolder_1077,
+	placeHolder_1078,
+	placeHolder_1079,
+	placeHolder_1080,
+	placeHolder_1081,
+	placeHolder_1082,
+	placeHolder_1083,
+	placeHolder_1084,
+	placeHolder_1085,
+	placeHolder_1086,
+	placeHolder_1087,
+	placeHolder_1088,
+	placeHolder_1089,
+	placeHolder_1090,
+	placeHolder_1091,
+	placeHolder_1092,
+	placeHolder_1093,
+	placeHolder_1094,
+	placeHolder_1095,
+	placeHolder_1096,
+	placeHolder_1097,
+	placeHolder_1098,
+	placeHolder_1099,
+	placeHolder_1100,
+	placeHolder_1101,
+	placeHolder_1102,
+	placeHolder_1103,
+	placeHolder_1104,
+	placeHolder_1105,
+	placeHolder_1106,
+	placeHolder_1107,
+	placeHolder_1108,
+	placeHolder_1109,
+	placeHolder_1110,
+	placeHolder_1111,
+	placeHolder_1112,
+	placeHolder_1113,
+	placeHolder_1114,
+	placeHolder_1115,
+	placeHolder_1116,
+	placeHolder_1117,
+	placeHolder_1118,
+	placeHolder_1119,
+	placeHolder_1120,
+	placeHolder_1121,
+	placeHolder_1122,
+	placeHolder_1123,
+	placeHolder_1124,
+	placeHolder_1125,
+	placeHolder_1126,
+	placeHolder_1127,
+	placeHolder_1128,
+	placeHolder_1129,
+	placeHolder_1130,
+	placeHolder_1131,
+	placeHolder_1132,
+	placeHolder_1133,
+	placeHolder_1134,
+	placeHolder_1135,
+	placeHolder_1136,
+	placeHolder_1137,
+	placeHolder_1138,
+	placeHolder_1139,
+	placeHolder_1140,
+	placeHolder_1141,
+	placeHolder_1142,
+	placeHolder_1143,
+	placeHolder_1144,
+	placeHolder_1145,
+	placeHolder_1146,
+	placeHolder_1147,
+	placeHolder_1148,
+	placeHolder_1149,
+	placeHolder_1150,
+	placeHolder_1151,
+	placeHolder_1152,
+	placeHolder_1153,
+	placeHolder_1154,
+	placeHolder_1155,
+	placeHolder_1156,
+	placeHolder_1157,
+	placeHolder_1158,
+	placeHolder_1159,
+	placeHolder_1160,
+	placeHolder_1161,
+	placeHolder_1162,
+	placeHolder_1163,
+	placeHolder_1164,
+	placeHolder_1165,
+	placeHolder_1166,
+	placeHolder_1167,
+	placeHolder_1168,
+	placeHolder_1169,
+	placeHolder_1170,
+	placeHolder_1171,
+	placeHolder_1172,
+	placeHolder_1173,
+	placeHolder_1174,
+	placeHolder_1175,
+	placeHolder_1176,
+	placeHolder_1177,
+	placeHolder_1178,
+	placeHolder_1179,
+	placeHolder_1180,
+	placeHolder_1181,
+	placeHolder_1182,
+	placeHolder_1183,
+	placeHolder_1184,
+	placeHolder_1185,
+	placeHolder_1186,
+	placeHolder_1187,
+	placeHolder_1188,
+	placeHolder_1189,
+	placeHolder_1190,
+	placeHolder_1191,
+	placeHolder_1192,
+	placeHolder_1193,
+	placeHolder_1194,
+	placeHolder_1195,
+	placeHolder_1196,
+	placeHolder_1197,
+	placeHolder_1198,
+	placeHolder_1199,
+	placeHolder_1200,
+	placeHolder_1201,
+	placeHolder_1202,
+	placeHolder_1203,
+	placeHolder_1204,
+	placeHolder_1205,
+	placeHolder_1206,
+	placeHolder_1207,
+	placeHolder_1208,
+	placeHolder_1209,
+	placeHolder_1210,
+	placeHolder_1211,
+	placeHolder_1212,
+	placeHolder_1213,
+	placeHolder_1214,
+	placeHolder_1215,
+	placeHolder_1216,
+	placeHolder_1217,
+	placeHolder_1218,
+	placeHolder_1219,
+	placeHolder_1220,
+	placeHolder_1221,
+	placeHolder_1222,
+	placeHolder_1223,
+	placeHolder_1224,
+	placeHolder_1225,
+	placeHolder_1226,
+	placeHolder_1227,
+	placeHolder_1228,
+	placeHolder_1229,
+	placeHolder_1230,
+	placeHolder_1231,
+	placeHolder_1232,
+	placeHolder_1233,
+	placeHolder_1234,
+	placeHolder_1235,
+	placeHolder_1236,
+	placeHolder_1237,
+	placeHolder_1238,
+	placeHolder_1239,
+	placeHolder_1240,
+	placeHolder_1241,
+	placeHolder_1242,
+	placeHolder_1243,
+	placeHolder_1244,
+	placeHolder_1245,
+	placeHolder_1246,
+	placeHolder_1247,
+	placeHolder_1248,
+	placeHolder_1249,
+	placeHolder_1250,
+	placeHolder_1251,
+	placeHolder_1252,
+	placeHolder_1253,
+	placeHolder_1254,
+	placeHolder_1255,
+	placeHolder_1256,
+	placeHolder_1257,
+	placeHolder_1258,
+	placeHolder_1259,
+	placeHolder_1260,
+	placeHolder_1261,
+	placeHolder_1262,
+	placeHolder_1263,
+	placeHolder_1264,
+	placeHolder_1265,
+	placeHolder_1266,
+	placeHolder_1267,
+	placeHolder_1268,
+	placeHolder_1269,
+	placeHolder_1270,
+	placeHolder_1271,
+	placeHolder_1272,
+	placeHolder_1273,
+	placeHolder_1274,
+	placeHolder_1275,
+	placeHolder_1276,
+	placeHolder_1277,
+	placeHolder_1278,
+	placeHolder_1279,
+	placeHolder_1280,
+	placeHolder_1281,
+	placeHolder_1282,
+	placeHolder_1283,
+	placeHolder_1284,
+	placeHolder_1285,
+	placeHolder_1286,
+	placeHolder_1287,
+	placeHolder_1288,
+	placeHolder_1289,
+	placeHolder_1290,
+	placeHolder_1291,
+	placeHolder_1292,
+	placeHolder_1293,
+	placeHolder_1294,
+	placeHolder_1295,
+	placeHolder_1296,
+	placeHolder_1297,
+	placeHolder_1298,
+	placeHolder_1299,
+	placeHolder_1300,
+	placeHolder_1301,
+	placeHolder_1302,
+	placeHolder_1303,
+	placeHolder_1304,
+	placeHolder_1305,
+	placeHolder_1306,
+	placeHolder_1307,
+	placeHolder_1308,
+	placeHolder_1309,
+	placeHolder_1310,
+	placeHolder_1311,
+	placeHolder_1312,
+	placeHolder_1313,
+	placeHolder_1314,
+	placeHolder_1315,
+	placeHolder_1316,
+	placeHolder_1317,
+	placeHolder_1318,
+	placeHolder_1319,
+	placeHolder_1320,
+	placeHolder_1321,
+	placeHolder_1322,
+	placeHolder_1323,
+	placeHolder_1324,
+	placeHolder_1325,
+	placeHolder_1326,
+	placeHolder_1327,
+	placeHolder_1328,
+	placeHolder_1329,
+	placeHolder_1330,
+	placeHolder_1331,
+	placeHolder_1332,
+	placeHolder_1333,
+	placeHolder_1334,
+	placeHolder_1335,
+	placeHolder_1336,
+	placeHolder_1337,
+	placeHolder_1338,
+	placeHolder_1339,
+	placeHolder_1340,
+	placeHolder_1341,
+	placeHolder_1342,
+	placeHolder_1343,
+	placeHolder_1344,
+	placeHolder_1345,
+	placeHolder_1346,
+	placeHolder_1347,
+	placeHolder_1348,
+	placeHolder_1349,
+	placeHolder_1350,
+	placeHolder_1351,
+	placeHolder_1352,
+	placeHolder_1353,
+	placeHolder_1354,
+	placeHolder_1355,
+	placeHolder_1356,
+	placeHolder_1357,
+	placeHolder_1358,
+	placeHolder_1359,
+	placeHolder_1360,
+	placeHolder_1361,
+	placeHolder_1362,
+	placeHolder_1363,
+	placeHolder_1364,
+	placeHolder_1365,
+	placeHolder_1366,
+	placeHolder_1367,
+	placeHolder_1368,
+	placeHolder_1369,
+	placeHolder_1370,
+	placeHolder_1371,
+	placeHolder_1372,
+	placeHolder_1373,
+	placeHolder_1374,
+	placeHolder_1375,
+	placeHolder_1376,
+	placeHolder_1377,
+	placeHolder_1378,
+	placeHolder_1379,
+	placeHolder_1380,
+	placeHolder_1381,
+	placeHolder_1382,
+	placeHolder_1383,
+	placeHolder_1384,
+	placeHolder_1385,
+	placeHolder_1386,
+	placeHolder_1387,
+	placeHolder_1388,
+	placeHolder_1389,
+	placeHolder_1390,
+	placeHolder_1391,
+	placeHolder_1392,
+	placeHolder_1393,
+	placeHolder_1394,
+	placeHolder_1395,
+	placeHolder_1396,
+	placeHolder_1397,
+	placeHolder_1398,
+	placeHolder_1399,
+	placeHolder_1400,
+	placeHolder_1401,
+	placeHolder_1402,
+	placeHolder_1403,
+	placeHolder_1404,
+	placeHolder_1405,
+	placeHolder_1406,
+	placeHolder_1407,
+	placeHolder_1408,
+	placeHolder_1409,
+	placeHolder_1410,
+	placeHolder_1411,
+	placeHolder_1412,
+	placeHolder_1413,
+	placeHolder_1414,
+	placeHolder_1415,
+	placeHolder_1416,
+	placeHolder_1417,
+	placeHolder_1418,
+	placeHolder_1419,
+	placeHolder_1420,
+	placeHolder_1421,
+	placeHolder_1422,
+	placeHolder_1423,
+	placeHolder_1424,
+	placeHolder_1425,
+	placeHolder_1426,
+	placeHolder_1427,
+	placeHolder_1428,
+	placeHolder_1429,
+	placeHolder_1430,
+	placeHolder_1431,
+	placeHolder_1432,
+	placeHolder_1433,
+	placeHolder_1434,
+	placeHolder_1435,
+	placeHolder_1436,
+	placeHolder_1437,
+	placeHolder_1438,
+	placeHolder_1439,
+	placeHolder_1440,
+	placeHolder_1441,
+	placeHolder_1442,
+	placeHolder_1443,
+	placeHolder_1444,
+	placeHolder_1445,
+	placeHolder_1446,
+	placeHolder_1447,
+	placeHolder_1448,
+	placeHolder_1449,
+	placeHolder_1450,
+	placeHolder_1451,
+	placeHolder_1452,
+	placeHolder_1453,
+	placeHolder_1454,
+	placeHolder_1455,
+	placeHolder_1456,
+	placeHolder_1457,
+	placeHolder_1458,
+	placeHolder_1459,
+	placeHolder_1460,
+	placeHolder_1461,
+	placeHolder_1462,
+	placeHolder_1463,
+	placeHolder_1464,
+	placeHolder_1465,
+	placeHolder_1466,
+	placeHolder_1467,
+	placeHolder_1468,
+	placeHolder_1469,
+	placeHolder_1470,
+	placeHolder_1471,
+	placeHolder_1472,
+	placeHolder_1473,
+	placeHolder_1474,
+	placeHolder_1475,
+	placeHolder_1476,
+	placeHolder_1477,
+	placeHolder_1478,
+	placeHolder_1479,
+	placeHolder_1480,
+	placeHolder_1481,
+	placeHolder_1482,
+	placeHolder_1483,
+	placeHolder_1484,
+	placeHolder_1485,
+	placeHolder_1486,
+	placeHolder_1487,
+	placeHolder_1488,
+	placeHolder_1489,
+	placeHolder_1490,
+	placeHolder_1491,
+	placeHolder_1492,
+	placeHolder_1493,
+	placeHolder_1494,
+	placeHolder_1495,
+	placeHolder_1496,
+	placeHolder_1497,
+	placeHolder_1498,
+	placeHolder_1499,
+	placeHolder_1500,
+	placeHolder_1501,
+	placeHolder_1502,
+	placeHolder_1503,
+	placeHolder_1504,
+	placeHolder_1505,
+	placeHolder_1506,
+	placeHolder_1507,
+	placeHolder_1508,
+	placeHolder_1509,
+	placeHolder_1510,
+	placeHolder_1511,
+	placeHolder_1512,
+	placeHolder_1513,
+	placeHolder_1514,
+	placeHolder_1515,
+	placeHolder_1516,
+	placeHolder_1517,
+	placeHolder_1518,
+	placeHolder_1519,
+	placeHolder_1520,
+	placeHolder_1521,
+	placeHolder_1522,
+	placeHolder_1523,
+	placeHolder_1524,
+	placeHolder_1525,
+	placeHolder_1526,
+	placeHolder_1527,
+	placeHolder_1528,
+	placeHolder_1529,
+	placeHolder_1530,
+	placeHolder_1531,
+	placeHolder_1532,
+	placeHolder_1533,
+	placeHolder_1534,
+	placeHolder_1535,
+	placeHolder_1536,
+	placeHolder_1537,
+	placeHolder_1538,
+	placeHolder_1539,
+	placeHolder_1540,
+	placeHolder_1541,
+	placeHolder_1542,
+	placeHolder_1543,
+	placeHolder_1544,
+	placeHolder_1545,
+	placeHolder_1546,
+	placeHolder_1547,
+	placeHolder_1548,
+	placeHolder_1549,
+	placeHolder_1550,
+	placeHolder_1551,
+	placeHolder_1552,
+	placeHolder_1553,
+	placeHolder_1554,
+	placeHolder_1555,
+	placeHolder_1556,
+	placeHolder_1557,
+	placeHolder_1558,
+	placeHolder_1559,
+	placeHolder_1560,
+	placeHolder_1561,
+	placeHolder_1562,
+	placeHolder_1563,
+	placeHolder_1564,
+	placeHolder_1565,
+	placeHolder_1566,
+	placeHolder_1567,
+	placeHolder_1568,
+	placeHolder_1569,
+	placeHolder_1570,
+	placeHolder_1571,
+	placeHolder_1572,
+	placeHolder_1573,
+	placeHolder_1574,
+	placeHolder_1575,
+	placeHolder_1576,
+	placeHolder_1577,
+	placeHolder_1578,
+	placeHolder_1579,
+	placeHolder_1580,
+	placeHolder_1581,
+	placeHolder_1582,
+	placeHolder_1583,
+	placeHolder_1584,
+	placeHolder_1585,
+	placeHolder_1586,
+	placeHolder_1587,
+	placeHolder_1588,
+	placeHolder_1589,
+	placeHolder_1590,
+	placeHolder_1591,
+	placeHolder_1592,
+	placeHolder_1593,
+	placeHolder_1594,
+	placeHolder_1595,
+	placeHolder_1596,
+	placeHolder_1597,
+	placeHolder_1598,
+	placeHolder_1599,
+	placeHolder_1600,
+	placeHolder_1601,
+	placeHolder_1602,
+	placeHolder_1603,
+	placeHolder_1604,
+	placeHolder_1605,
+	placeHolder_1606,
+	placeHolder_1607,
+	placeHolder_1608,
+	placeHolder_1609,
+	placeHolder_1610,
+	placeHolder_1611,
+	placeHolder_1612,
+	placeHolder_1613,
+	placeHolder_1614,
+	placeHolder_1615,
+	placeHolder_1616,
+	placeHolder_1617,
+	placeHolder_1618,
+	placeHolder_1619,
+	placeHolder_1620,
+	placeHolder_1621,
+	placeHolder_1622,
+	placeHolder_1623,
+	placeHolder_1624,
+	placeHolder_1625,
+	placeHolder_1626,
+	placeHolder_1627,
+	placeHolder_1628,
+	placeHolder_1629,
+	placeHolder_1630,
+	placeHolder_1631,
+	placeHolder_1632,
+	placeHolder_1633,
+	placeHolder_1634,
+	placeHolder_1635,
+	placeHolder_1636,
+	placeHolder_1637,
+	placeHolder_1638,
+	placeHolder_1639,
+	placeHolder_1640,
+	placeHolder_1641,
+	placeHolder_1642,
+	placeHolder_1643,
+	placeHolder_1644,
+	placeHolder_1645,
+	placeHolder_1646,
+	placeHolder_1647,
+	placeHolder_1648,
+	placeHolder_1649,
+	placeHolder_1650,
+	placeHolder_1651,
+	placeHolder_1652,
+	placeHolder_1653,
+	placeHolder_1654,
+	placeHolder_1655,
+	placeHolder_1656,
+	placeHolder_1657,
+	placeHolder_1658,
+	placeHolder_1659,
+	placeHolder_1660,
+	placeHolder_1661,
+	placeHolder_1662,
+	placeHolder_1663,
+	placeHolder_1664,
+	placeHolder_1665,
+	placeHolder_1666,
+	placeHolder_1667,
+	placeHolder_1668,
+	placeHolder_1669,
+	placeHolder_1670,
+	placeHolder_1671,
+	placeHolder_1672,
+	placeHolder_1673,
+	placeHolder_1674,
+	placeHolder_1675,
+	placeHolder_1676,
+	placeHolder_1677,
+	placeHolder_1678,
+	placeHolder_1679,
+	placeHolder_1680,
+	placeHolder_1681,
+	placeHolder_1682,
+	placeHolder_1683,
+	placeHolder_1684,
+	placeHolder_1685,
+	placeHolder_1686,
+	placeHolder_1687,
+	placeHolder_1688,
+	placeHolder_1689,
+	placeHolder_1690,
+	placeHolder_1691,
+	placeHolder_1692,
+	placeHolder_1693,
+	placeHolder_1694,
+	placeHolder_1695,
+	placeHolder_1696,
+	placeHolder_1697,
+	placeHolder_1698,
+	placeHolder_1699,
+	placeHolder_1700,
+	placeHolder_1701,
+	placeHolder_1702,
+	placeHolder_1703,
+	placeHolder_1704,
+	placeHolder_1705,
+	placeHolder_1706,
+	placeHolder_1707,
+	placeHolder_1708,
+	placeHolder_1709,
+	placeHolder_1710,
+	placeHolder_1711,
+	placeHolder_1712,
+	placeHolder_1713,
+	placeHolder_1714,
+	placeHolder_1715,
+	placeHolder_1716,
+	placeHolder_1717,
+	placeHolder_1718,
+	placeHolder_1719,
+	placeHolder_1720,
+	placeHolder_1721,
+	placeHolder_1722,
+	placeHolder_1723,
+	placeHolder_1724,
+	placeHolder_1725,
+	placeHolder_1726,
+	placeHolder_1727,
+	placeHolder_1728,
+	placeHolder_1729,
+	placeHolder_1730,
+	placeHolder_1731,
+	placeHolder_1732,
+	placeHolder_1733,
+	placeHolder_1734,
+	placeHolder_1735,
+	placeHolder_1736,
+	placeHolder_1737,
+	placeHolder_1738,
+	placeHolder_1739,
+	placeHolder_1740,
+	placeHolder_1741,
+	placeHolder_1742,
+	placeHolder_1743,
+	placeHolder_1744,
+	placeHolder_1745,
+	placeHolder_1746,
+	placeHolder_1747,
+	placeHolder_1748,
+	placeHolder_1749,
+	placeHolder_1750,
+	placeHolder_1751,
+	placeHolder_1752,
+	placeHolder_1753,
+	placeHolder_1754,
+	placeHolder_1755,
+	placeHolder_1756,
+	placeHolder_1757,
+	placeHolder_1758,
+	placeHolder_1759,
+	placeHolder_1760,
+	placeHolder_1761,
+	placeHolder_1762,
+	placeHolder_1763,
+	placeHolder_1764,
+	placeHolder_1765,
+	placeHolder_1766,
+	placeHolder_1767,
+	placeHolder_1768,
+	placeHolder_1769,
+	placeHolder_1770,
+	placeHolder_1771,
+	placeHolder_1772,
+	placeHolder_1773,
+	placeHolder_1774,
+	placeHolder_1775,
+	placeHolder_1776,
+	placeHolder_1777,
+	placeHolder_1778,
+	placeHolder_1779,
+	placeHolder_1780,
+	placeHolder_1781,
+	placeHolder_1782,
+	placeHolder_1783,
+	placeHolder_1784,
+	placeHolder_1785,
+	placeHolder_1786,
+	placeHolder_1787,
+	placeHolder_1788,
+	placeHolder_1789,
+	placeHolder_1790,
+	placeHolder_1791,
+	placeHolder_1792,
+	placeHolder_1793,
+	placeHolder_1794,
+	placeHolder_1795,
+	placeHolder_1796,
+	placeHolder_1797,
+	placeHolder_1798,
+	placeHolder_1799,
+	placeHolder_1800,
+	placeHolder_1801,
+	placeHolder_1802,
+	placeHolder_1803,
+	placeHolder_1804,
+	placeHolder_1805,
+	placeHolder_1806,
+	placeHolder_1807,
+	placeHolder_1808,
+	placeHolder_1809,
+	placeHolder_1810,
+	placeHolder_1811,
+	placeHolder_1812,
+	placeHolder_1813,
+	placeHolder_1814,
+	placeHolder_1815,
+	placeHolder_1816,
+	placeHolder_1817,
+	placeHolder_1818,
+	placeHolder_1819,
+	placeHolder_1820,
+	placeHolder_1821,
+	placeHolder_1822,
+	placeHolder_1823,
+	placeHolder_1824,
+	placeHolder_1825,
+	placeHolder_1826,
+	placeHolder_1827,
+	placeHolder_1828,
+	placeHolder_1829,
+	placeHolder_1830,
+	placeHolder_1831,
+	placeHolder_1832,
+	placeHolder_1833,
+	placeHolder_1834,
+	placeHolder_1835,
+	placeHolder_1836,
+	placeHolder_1837,
+	placeHolder_1838,
+	placeHolder_1839,
+	placeHolder_1840,
+	placeHolder_1841,
+	placeHolder_1842,
+	placeHolder_1843,
+	placeHolder_1844,
+	placeHolder_1845,
+	placeHolder_1846,
+	placeHolder_1847,
+	placeHolder_1848,
+	placeHolder_1849,
+	placeHolder_1850,
+	placeHolder_1851,
+	placeHolder_1852,
+	placeHolder_1853,
+	placeHolder_1854,
+	placeHolder_1855,
+	placeHolder_1856,
+	placeHolder_1857,
+	placeHolder_1858,
+	placeHolder_1859,
+	placeHolder_1860,
+	placeHolder_1861,
+	placeHolder_1862,
+	placeHolder_1863,
+	placeHolder_1864,
+	placeHolder_1865,
+	placeHolder_1866,
+	placeHolder_1867,
+	placeHolder_1868,
+	placeHolder_1869,
+	placeHolder_1870,
+	placeHolder_1871,
+	placeHolder_1872,
+	placeHolder_1873,
+	placeHolder_1874,
+	placeHolder_1875,
+	placeHolder_1876,
+	placeHolder_1877,
+	placeHolder_1878,
+	placeHolder_1879,
+	placeHolder_1880,
+	placeHolder_1881,
+	placeHolder_1882,
+	placeHolder_1883,
+	placeHolder_1884,
+	placeHolder_1885,
+	placeHolder_1886,
+	placeHolder_1887,
+	placeHolder_1888,
+	placeHolder_1889,
+	placeHolder_1890,
+	placeHolder_1891,
+	placeHolder_1892,
+	placeHolder_1893,
+	placeHolder_1894,
+	placeHolder_1895,
+	placeHolder_1896,
+	placeHolder_1897,
+	placeHolder_1898,
+	placeHolder_1899,
+	placeHolder_1900,
+	placeHolder_1901,
+	placeHolder_1902,
+	placeHolder_1903,
+	placeHolder_1904,
+	placeHolder_1905,
+	placeHolder_1906,
+	placeHolder_1907,
+	placeHolder_1908,
+	placeHolder_1909,
+	placeHolder_1910,
+	placeHolder_1911,
+	placeHolder_1912,
+	placeHolder_1913,
+	placeHolder_1914,
+	placeHolder_1915,
+	placeHolder_1916,
+	placeHolder_1917,
+	placeHolder_1918,
+	placeHolder_1919,
+	placeHolder_1920,
+	placeHolder_1921,
+	placeHolder_1922,
+	placeHolder_1923,
+	placeHolder_1924,
+	placeHolder_1925,
+	placeHolder_1926,
+	placeHolder_1927,
+	placeHolder_1928,
+	placeHolder_1929,
+	placeHolder_1930,
+	placeHolder_1931,
+	placeHolder_1932,
+	placeHolder_1933,
+	placeHolder_1934,
+	placeHolder_1935,
+	placeHolder_1936,
+	placeHolder_1937,
+	placeHolder_1938,
+	placeHolder_1939,
+	placeHolder_1940,
+	placeHolder_1941,
+	placeHolder_1942,
+	placeHolder_1943,
+	placeHolder_1944,
+	placeHolder_1945,
+	placeHolder_1946,
+	placeHolder_1947,
+	placeHolder_1948,
+	placeHolder_1949,
+	placeHolder_1950,
+	placeHolder_1951,
+	placeHolder_1952,
+	placeHolder_1953,
+	placeHolder_1954,
+	placeHolder_1955,
+	placeHolder_1956,
+	placeHolder_1957,
+	placeHolder_1958,
+	placeHolder_1959,
+	placeHolder_1960,
+	placeHolder_1961,
+	placeHolder_1962,
+	placeHolder_1963,
+	placeHolder_1964,
+	placeHolder_1965,
+	placeHolder_1966,
+	placeHolder_1967,
+	placeHolder_1968,
+	placeHolder_1969,
+	placeHolder_1970,
+	placeHolder_1971,
+	placeHolder_1972,
+	placeHolder_1973,
+	placeHolder_1974,
+	placeHolder_1975,
+	placeHolder_1976,
+	placeHolder_1977,
+	placeHolder_1978,
+	placeHolder_1979,
+	placeHolder_1980,
+	placeHolder_1981,
+	placeHolder_1982,
+	placeHolder_1983,
+	placeHolder_1984,
+	placeHolder_1985,
+	placeHolder_1986,
+	placeHolder_1987,
+	placeHolder_1988,
+	placeHolder_1989,
+	placeHolder_1990,
+	placeHolder_1991,
+	placeHolder_1992,
+	placeHolder_1993,
+	placeHolder_1994,
+	placeHolder_1995,
+	placeHolder_1996,
+	placeHolder_1997,
+	placeHolder_1998,
+	placeHolder_1999,
+	NoExistDevice,
+	HasAddedDevice,
 }
 
 class ValidateTokenResult {

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

@@ -158,6 +158,7 @@ class DeviceInfoDTO extends BaseDTO{
 	String? systemVersion;
 	String? cPUModel;
 	String? systemLanguage;
+	List<String>? diagnosisModules;
 
 	DeviceInfoDTO({
 		this.deviceCode,
@@ -178,6 +179,7 @@ class DeviceInfoDTO extends BaseDTO{
 		this.systemVersion,
 		this.cPUModel,
 		this.systemLanguage,
+		this.diagnosisModules,
 		DateTime? createTime,
 		DateTime? updateTime,
 	}) : super(
@@ -205,6 +207,7 @@ class DeviceInfoDTO extends BaseDTO{
 			systemVersion: map['SystemVersion'],
 			cPUModel: map['CPUModel'],
 			systemLanguage: map['SystemLanguage'],
+			diagnosisModules: map['DiagnosisModules'] != null ? map['DiagnosisModules'].cast<String>().toList() : null,
 			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
 			updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
 		);
@@ -247,6 +250,8 @@ class DeviceInfoDTO extends BaseDTO{
 			map['CPUModel'] = cPUModel;
 		if(systemLanguage != null)
 			map['SystemLanguage'] = systemLanguage;
+		if(diagnosisModules != null)
+			map['DiagnosisModules'] = diagnosisModules;
 		return map;
 	}
 }
@@ -276,6 +281,7 @@ class CacheDeviceDTO extends DeviceInfoDTO{
 		String? systemVersion,
 		String? cPUModel,
 		String? systemLanguage,
+		List<String>? diagnosisModules,
 		DateTime? createTime,
 		DateTime? updateTime,
 	}) : super(
@@ -297,6 +303,7 @@ class CacheDeviceDTO extends DeviceInfoDTO{
 			systemVersion: systemVersion,
 			cPUModel: cPUModel,
 			systemLanguage: systemLanguage,
+			diagnosisModules: diagnosisModules,
 			createTime: createTime,
 			updateTime: updateTime,
 		);
@@ -323,6 +330,7 @@ class CacheDeviceDTO extends DeviceInfoDTO{
 			systemVersion: map['SystemVersion'],
 			cPUModel: map['CPUModel'],
 			systemLanguage: map['SystemLanguage'],
+			diagnosisModules: map['DiagnosisModules'] != null ? map['DiagnosisModules'].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

@@ -123,6 +123,7 @@ class DeviceExtendInfoDTO extends DeviceInfoDTO{
 		String? systemVersion,
 		String? cPUModel,
 		String? systemLanguage,
+		List<String>? diagnosisModules,
 		DateTime? createTime,
 		DateTime? updateTime,
 	}) : super(
@@ -144,6 +145,7 @@ class DeviceExtendInfoDTO extends DeviceInfoDTO{
 			systemVersion: systemVersion,
 			cPUModel: cPUModel,
 			systemLanguage: systemLanguage,
+			diagnosisModules: diagnosisModules,
 			createTime: createTime,
 			updateTime: updateTime,
 		);
@@ -174,6 +176,7 @@ class DeviceExtendInfoDTO extends DeviceInfoDTO{
 			systemVersion: map['SystemVersion'],
 			cPUModel: map['CPUModel'],
 			systemLanguage: map['SystemLanguage'],
+			diagnosisModules: map['DiagnosisModules'] != null ? map['DiagnosisModules'].cast<String>().toList() : null,
 			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
 			updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
 		);

+ 37 - 0
lib/services/fastestServerInteractionCenter.dart

@@ -0,0 +1,37 @@
+import 'dart:core';
+
+import 'package:fis_jsonrpc/client_base.dart';
+import 'package:fis_common/json_convert.dart';
+
+import 'fastestServerInteractionCenter.m.dart';
+
+
+class FastestServerInteractionCenterService extends JsonRpcClientBase {
+	FastestServerInteractionCenterService(
+		String host, {
+		String serviceName = "IFastestServerInteractionCenterService",
+		Map<String, String>? headers,
+		int? timeout,
+	}) : super(
+						host,
+						serviceName,
+						headers: headers,
+						timeout: timeout,
+				) {
+		/// 注册响应实体反序列化处理器
+		FJsonConvert.setDecoder((map) => ServerInfoDTO.fromJson(map));
+	}
+
+	Future<bool> updateServerInfoToCacheAsync(UpdateServerInfoRequest request) async {
+		var rpcRst = await call("UpdateServerInfoToCacheAsync", request);
+		return rpcRst;
+	}
+
+	Future<List<ServerInfoDTO>> getServerInfoFromCacheAsync(QueryServerInfoRequest request) async {
+		var rpcRst = await call("GetServerInfoFromCacheAsync", request);
+		var result = (rpcRst as List).map((e)=>ServerInfoDTO.fromJson(e as Map<String, dynamic>)).toList();
+		return result;
+	}
+
+}
+

+ 69 - 0
lib/services/fastestServerInteractionCenter.m.dart

@@ -0,0 +1,69 @@
+class UpdateServerInfoRequest {
+	List<String>? codes;
+
+	UpdateServerInfoRequest({
+		this.codes,
+	});
+
+	factory UpdateServerInfoRequest.fromJson(Map<String, dynamic> map) {
+		return UpdateServerInfoRequest( 
+			codes: map['Codes'] != null ? map['Codes'].cast<String>().toList() : null,
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		if(codes != null)
+			map['Codes'] = codes;
+		return map;
+	}
+}
+
+class ServerInfoDTO {
+	String? name;
+	String? host;
+
+	ServerInfoDTO({
+		this.name,
+		this.host,
+	});
+
+	factory ServerInfoDTO.fromJson(Map<String, dynamic> map) {
+		return ServerInfoDTO( 
+			name: map['Name'],
+			host: map['Host'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		if(name != null)
+			map['Name'] = name;
+		if(host != null)
+			map['Host'] = host;
+		return map;
+	}
+}
+
+class QueryServerInfoRequest {
+	List<String>? codes;
+
+	QueryServerInfoRequest({
+		this.codes,
+	});
+
+	factory QueryServerInfoRequest.fromJson(Map<String, dynamic> map) {
+		return QueryServerInfoRequest( 
+			codes: map['Codes'] != null ? map['Codes'].cast<String>().toList() : null,
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		if(codes != null)
+			map['Codes'] = codes;
+		return map;
+	}
+}
+
+

+ 2 - 0
lib/services/index.dart

@@ -4,6 +4,7 @@ export 'connect.dart';
 export 'dBLog.dart';
 export 'device.dart';
 export 'email.dart';
+export 'fastestServerInteractionCenter.dart';
 export 'identityApply.dart';
 export 'login.dart';
 export 'notification.dart';
@@ -25,6 +26,7 @@ export 'authentication.m.dart';
 export 'connect.m.dart';
 export 'dBLog.m.dart';
 export 'device.m.dart';
+export 'fastestServerInteractionCenter.m.dart';
 export 'identityApply.m.dart';
 export 'login.m.dart';
 export 'notification.m.dart';

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

@@ -92,6 +92,7 @@ class OrganizationBasicDTO extends OrganizationBaseDTO{
 	OrganizationPatientTypeEnum patientType;
 	bool isinvented;
 	List<SettingDTOClass>? settings;
+	List<String>? diagnosisModules;
 
 	OrganizationBasicDTO({
 		this.regionCode,
@@ -100,6 +101,7 @@ class OrganizationBasicDTO extends OrganizationBaseDTO{
 		this.patientType = OrganizationPatientTypeEnum.Person,
 		this.isinvented = false,
 		this.settings,
+		this.diagnosisModules,
 		String? organizationCode,
 		String? organizationName,
 		DateTime? createTime,
@@ -119,6 +121,7 @@ class OrganizationBasicDTO extends OrganizationBaseDTO{
 			patientType: OrganizationPatientTypeEnum.values.firstWhere((e) => e.index == map['PatientType']),
 			isinvented: map['Isinvented'],
 			settings: map['Settings'] != null ? (map['Settings'] as List).map((e)=>SettingDTOClass.fromJson(e as Map<String,dynamic>)).toList() : null,
+			diagnosisModules: map['DiagnosisModules'] != null ? map['DiagnosisModules'].cast<String>().toList() : null,
 			organizationCode: map['OrganizationCode'],
 			organizationName: map['OrganizationName'],
 			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
@@ -138,6 +141,8 @@ class OrganizationBasicDTO extends OrganizationBaseDTO{
 		map['Isinvented'] = isinvented;
 		if(settings != null)
 			map['Settings'] = settings;
+		if(diagnosisModules != null)
+			map['DiagnosisModules'] = diagnosisModules;
 		return map;
 	}
 }
@@ -187,6 +192,7 @@ class OrganizationDTO extends OrganizationBasicDTO{
 		OrganizationPatientTypeEnum patientType = OrganizationPatientTypeEnum.Person,
 		bool isinvented = false,
 		List<SettingDTOClass>? settings,
+		List<String>? diagnosisModules,
 		String? organizationCode,
 		String? organizationName,
 		DateTime? createTime,
@@ -198,6 +204,7 @@ class OrganizationDTO extends OrganizationBasicDTO{
 			patientType: patientType,
 			isinvented: isinvented,
 			settings: settings,
+			diagnosisModules: diagnosisModules,
 			organizationCode: organizationCode,
 			organizationName: organizationName,
 			createTime: createTime,
@@ -224,6 +231,7 @@ class OrganizationDTO extends OrganizationBasicDTO{
 			patientType: OrganizationPatientTypeEnum.values.firstWhere((e) => e.index == map['PatientType']),
 			isinvented: map['Isinvented'],
 			settings: map['Settings'] != null ? (map['Settings'] as List).map((e)=>SettingDTOClass.fromJson(e as Map<String,dynamic>)).toList() : null,
+			diagnosisModules: map['DiagnosisModules'] != null ? map['DiagnosisModules'].cast<String>().toList() : null,
 			organizationCode: map['OrganizationCode'],
 			organizationName: map['OrganizationName'],
 			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,

+ 11 - 5
lib/services/remedical.dart

@@ -38,6 +38,7 @@ class RemedicalService extends JsonRpcClientBase {
 		FJsonConvert.setDecoder((map) => CommentItemResultDTO.fromJson(map));
 		FJsonConvert.setDecoder((map) => PresetCommentItemResultDTO.fromJson(map));
 		FJsonConvert.setDecoder((map) => MeasureSystemSettingDTO.fromJson(map));
+		FJsonConvert.setDecoder((map) => ExportRemedicalDataResult.fromJson(map));
 	}
 
 	Future<CreateExaminfoResult> createExamInfoAsync(CreateExaminfoRequest request) async {
@@ -132,13 +133,12 @@ class RemedicalService extends JsonRpcClientBase {
 		return result;
 	}
 
-	Future<bool> deviceDiagnosisChanged(DeviceDiagnosisChangedNotification request) async {
-		var rpcRst = await call("DeviceDiagnosisChanged", request);
-		return rpcRst;
+	Future<List<DiagnosisOrganEnum>> findDeviceDiagnosisAsync(FindDeviceDiagnosisRequest request) async {
+		var rpcRst = await call("FindDeviceDiagnosisAsync", request);
 	}
 
-	Future<bool> clearDeviceDiagnosis() async {
-		var rpcRst = await call("ClearDeviceDiagnosis", );
+	Future<bool> deviceDiagnosisChanged(DeviceDiagnosisChangedNotification request) async {
+		var rpcRst = await call("DeviceDiagnosisChanged", request);
 		return rpcRst;
 	}
 
@@ -168,5 +168,11 @@ class RemedicalService extends JsonRpcClientBase {
 		return rpcRst;
 	}
 
+	Future<ExportRemedicalDataResult> exportRemedicalDataAsync(ExportRemedicalDataRequest request) async {
+		var rpcRst = await call("ExportRemedicalDataAsync", request);
+		var result = ExportRemedicalDataResult.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
 }
 

+ 251 - 3
lib/services/remedical.m.dart

@@ -1330,21 +1330,60 @@ class GetPresetCommentsRequest extends TokenRequest{
 	}
 }
 
-class DeviceDiagnosisChangedNotification {
+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 = Map<String, dynamic>();
+		final map = super.toJson();
+		if(diagnosisModule != null)
+			map['DiagnosisModule'] = diagnosisModule;
+		if(organizationCode != null)
+			map['OrganizationCode'] = organizationCode;
 		if(deviceCode != null)
 			map['DeviceCode'] = deviceCode;
 		return map;
@@ -1717,4 +1756,213 @@ class SaveMeasureSystemSettingRequest extends TokenRequest{
 	}
 }
 
+enum RecordCreateTypeEnum {
+	Reservation,
+	Normal,
+}
+
+class RecordInfoDTO extends BaseDTO{
+	String? recordCode;
+	String? patientCode;
+	String? deviceCode;
+	RecordStatusEnum recordStatus;
+	String? creatorCode;
+	String? tags;
+	RecordCreateTypeEnum createType;
+	List<DataItemDTO>? patientInfo;
+	List<PatientInfoExt>? patientInfoExtList;
+	String? devicePatientID;
+	String? patientType;
+	List<String>? readUsers;
+	String? rootOrganizationCode;
+	String? organizationCode;
+	List<String>? associatedExamCodes;
+	DiagnosisStatusEnum diagnosisStatus;
+	List<DiagnosisInfoDTO>? diagnosisInfos;
+
+	RecordInfoDTO({
+		this.recordCode,
+		this.patientCode,
+		this.deviceCode,
+		this.recordStatus = RecordStatusEnum.NotScanned,
+		this.creatorCode,
+		this.tags,
+		this.createType = RecordCreateTypeEnum.Reservation,
+		this.patientInfo,
+		this.patientInfoExtList,
+		this.devicePatientID,
+		this.patientType,
+		this.readUsers,
+		this.rootOrganizationCode,
+		this.organizationCode,
+		this.associatedExamCodes,
+		this.diagnosisStatus = DiagnosisStatusEnum.NotRequired,
+		this.diagnosisInfos,
+		DateTime? createTime,
+		DateTime? updateTime,
+	}) : super(
+			createTime: createTime,
+			updateTime: updateTime,
+		);
+
+	factory RecordInfoDTO.fromJson(Map<String, dynamic> map) {
+		return RecordInfoDTO( 
+			recordCode: map['RecordCode'],
+			patientCode: map['PatientCode'],
+			deviceCode: map['DeviceCode'],
+			recordStatus: RecordStatusEnum.values.firstWhere((e) => e.index == map['RecordStatus']),
+			creatorCode: map['CreatorCode'],
+			tags: map['Tags'],
+			createType: RecordCreateTypeEnum.values.firstWhere((e) => e.index == map['CreateType']),
+			patientInfo: map['PatientInfo'] != null ? (map['PatientInfo'] as List).map((e)=>DataItemDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
+			patientInfoExtList: map['PatientInfoExtList'] != null ? (map['PatientInfoExtList'] as List).map((e)=>PatientInfoExt.fromJson(e as Map<String,dynamic>)).toList() : null,
+			devicePatientID: map['DevicePatientID'],
+			patientType: map['PatientType'],
+			readUsers: map['ReadUsers'] != null ? map['ReadUsers'].cast<String>().toList() : null,
+			rootOrganizationCode: map['RootOrganizationCode'],
+			organizationCode: map['OrganizationCode'],
+			associatedExamCodes: map['AssociatedExamCodes'] != null ? map['AssociatedExamCodes'].cast<String>().toList() : null,
+			diagnosisStatus: DiagnosisStatusEnum.values.firstWhere((e) => e.index == map['DiagnosisStatus']),
+			diagnosisInfos: map['DiagnosisInfos'] != null ? (map['DiagnosisInfos'] as List).map((e)=>DiagnosisInfoDTO.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(recordCode != null)
+			map['RecordCode'] = recordCode;
+		if(patientCode != null)
+			map['PatientCode'] = patientCode;
+		if(deviceCode != null)
+			map['DeviceCode'] = deviceCode;
+		map['RecordStatus'] = recordStatus.index;
+		if(creatorCode != null)
+			map['CreatorCode'] = creatorCode;
+		if(tags != null)
+			map['Tags'] = tags;
+		map['CreateType'] = createType.index;
+		if(patientInfo != null)
+			map['PatientInfo'] = patientInfo;
+		if(patientInfoExtList != null)
+			map['PatientInfoExtList'] = patientInfoExtList;
+		if(devicePatientID != null)
+			map['DevicePatientID'] = devicePatientID;
+		if(patientType != null)
+			map['PatientType'] = patientType;
+		if(readUsers != null)
+			map['ReadUsers'] = readUsers;
+		if(rootOrganizationCode != null)
+			map['RootOrganizationCode'] = rootOrganizationCode;
+		if(organizationCode != null)
+			map['OrganizationCode'] = organizationCode;
+		if(associatedExamCodes != null)
+			map['AssociatedExamCodes'] = associatedExamCodes;
+		map['DiagnosisStatus'] = diagnosisStatus.index;
+		if(diagnosisInfos != null)
+			map['DiagnosisInfos'] = diagnosisInfos;
+		return map;
+	}
+}
+
+class RemedicalData {
+	RecordInfoDTO? recordBaseInfo;
+	List<String>? reports;
+	List<String>? remedicalDatas;
+
+	RemedicalData({
+		this.recordBaseInfo,
+		this.reports,
+		this.remedicalDatas,
+	});
+
+	factory RemedicalData.fromJson(Map<String, dynamic> map) {
+		return RemedicalData( 
+			recordBaseInfo: map['RecordBaseInfo'] != null ? RecordInfoDTO.fromJson(map['RecordBaseInfo']) : null,
+			reports: map['Reports'] != null ? map['Reports'].cast<String>().toList() : null,
+			remedicalDatas: map['RemedicalDatas'] != null ? map['RemedicalDatas'].cast<String>().toList() : null,
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		if(recordBaseInfo != null)
+			map['RecordBaseInfo'] = recordBaseInfo;
+		if(reports != null)
+			map['Reports'] = reports;
+		if(remedicalDatas != null)
+			map['RemedicalDatas'] = remedicalDatas;
+		return map;
+	}
+}
+
+class ExportRemedicalDataResult {
+	List<RemedicalData>? remedicalDataList;
+
+	ExportRemedicalDataResult({
+		this.remedicalDataList,
+	});
+
+	factory ExportRemedicalDataResult.fromJson(Map<String, dynamic> map) {
+		return ExportRemedicalDataResult( 
+			remedicalDataList: map['RemedicalDataList'] != null ? (map['RemedicalDataList'] as List).map((e)=>RemedicalData.fromJson(e as Map<String,dynamic>)).toList() : null,
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		if(remedicalDataList != null)
+			map['RemedicalDataList'] = remedicalDataList;
+		return map;
+	}
+}
+
+class ExportRemedicalDataRequest extends TokenRequest{
+	DateTime? startTime;
+	DateTime? endTime;
+	bool isExportReport;
+	bool isExportRecord;
+	bool isExportRemedicalData;
+	List<String>? patientCodes;
+
+	ExportRemedicalDataRequest({
+		this.startTime,
+		this.endTime,
+		this.isExportReport = false,
+		this.isExportRecord = false,
+		this.isExportRemedicalData = false,
+		this.patientCodes,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory ExportRemedicalDataRequest.fromJson(Map<String, dynamic> map) {
+		return ExportRemedicalDataRequest( 
+			startTime: map['StartTime'] != null ? DateTime.parse(map['StartTime']) : null,
+			endTime: map['EndTime'] != null ? DateTime.parse(map['EndTime']) : null,
+			isExportReport: map['IsExportReport'],
+			isExportRecord: map['IsExportRecord'],
+			isExportRemedicalData: map['IsExportRemedicalData'],
+			patientCodes: map['PatientCodes'] != null ? map['PatientCodes'].cast<String>().toList() : null,
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(startTime != null)
+			map['StartTime'] = JsonRpcUtils.dateFormat(startTime!);
+		if(endTime != null)
+			map['EndTime'] = JsonRpcUtils.dateFormat(endTime!);
+		map['IsExportReport'] = isExportReport;
+		map['IsExportRecord'] = isExportRecord;
+		map['IsExportRemedicalData'] = isExportRemedicalData;
+		if(patientCodes != null)
+			map['PatientCodes'] = patientCodes;
+		return map;
+	}
+}
+
 

+ 10 - 0
lib/services/report.dart

@@ -272,5 +272,15 @@ class ReportService extends JsonRpcClientBase {
 		return rpcRst;
 	}
 
+	Future<String> findReportPreviewImageAsync(FindReportPreviewImageRequest request) async {
+		var rpcRst = await call("FindReportPreviewImageAsync", request);
+		return rpcRst;
+	}
+
+	Future<String> findReportShareUrlAsync(FindReportShareUrlRequest request) async {
+		var rpcRst = await call("FindReportShareUrlAsync", request);
+		return rpcRst;
+	}
+
 }
 

+ 125 - 8
lib/services/report.m.dart

@@ -108,6 +108,68 @@ 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;
@@ -122,7 +184,7 @@ class ReportBaseDTO extends BaseDTO{
 	DiagnosisOrganEnum reportOrgan;
 	DateTime? reportTime;
 	String? reportUserName;
-	String? reportPreviewImageUrl;
+	List<ReportPreviewDTO>? reportPreviewList;
 
 	ReportBaseDTO({
 		this.reportCode,
@@ -138,7 +200,7 @@ class ReportBaseDTO extends BaseDTO{
 		this.reportOrgan = DiagnosisOrganEnum.Null,
 		this.reportTime,
 		this.reportUserName,
-		this.reportPreviewImageUrl,
+		this.reportPreviewList,
 		DateTime? createTime,
 		DateTime? updateTime,
 	}) : super(
@@ -161,7 +223,7 @@ class ReportBaseDTO extends BaseDTO{
 			reportOrgan: DiagnosisOrganEnum.values.firstWhere((e) => e.index == map['ReportOrgan']),
 			reportTime: map['ReportTime'] != null ? DateTime.parse(map['ReportTime']) : null,
 			reportUserName: map['ReportUserName'],
-			reportPreviewImageUrl: map['ReportPreviewImageUrl'],
+			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,
 		);
@@ -194,8 +256,8 @@ class ReportBaseDTO extends BaseDTO{
 			map['ReportTime'] = JsonRpcUtils.dateFormat(reportTime!);
 		if(reportUserName != null)
 			map['ReportUserName'] = reportUserName;
-		if(reportPreviewImageUrl != null)
-			map['ReportPreviewImageUrl'] = reportPreviewImageUrl;
+		if(reportPreviewList != null)
+			map['ReportPreviewList'] = reportPreviewList;
 		return map;
 	}
 }
@@ -220,7 +282,7 @@ class ReportDTO extends ReportBaseDTO{
 		DiagnosisOrganEnum reportOrgan = DiagnosisOrganEnum.Null,
 		DateTime? reportTime,
 		String? reportUserName,
-		String? reportPreviewImageUrl,
+		List<ReportPreviewDTO>? reportPreviewList,
 		DateTime? createTime,
 		DateTime? updateTime,
 	}) : super(
@@ -237,7 +299,7 @@ class ReportDTO extends ReportBaseDTO{
 			reportOrgan: reportOrgan,
 			reportTime: reportTime,
 			reportUserName: reportUserName,
-			reportPreviewImageUrl: reportPreviewImageUrl,
+			reportPreviewList: reportPreviewList,
 			createTime: createTime,
 			updateTime: updateTime,
 		);
@@ -259,7 +321,7 @@ class ReportDTO extends ReportBaseDTO{
 			reportOrgan: DiagnosisOrganEnum.values.firstWhere((e) => e.index == map['ReportOrgan']),
 			reportTime: map['ReportTime'] != null ? DateTime.parse(map['ReportTime']) : null,
 			reportUserName: map['ReportUserName'],
-			reportPreviewImageUrl: map['ReportPreviewImageUrl'],
+			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,
 		);
@@ -1708,4 +1770,59 @@ class RetryPushReportRecordsByCodesRequest extends TokenRequest{
 	}
 }
 
+class FindReportPreviewImageRequest extends TokenRequest{
+	String? recordCode;
+	String? languageCode;
+
+	FindReportPreviewImageRequest({
+		this.recordCode,
+		this.languageCode,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory FindReportPreviewImageRequest.fromJson(Map<String, dynamic> map) {
+		return FindReportPreviewImageRequest( 
+			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 FindReportShareUrlRequest extends TokenRequest{
+	String? reportCode;
+
+	FindReportShareUrlRequest({
+		this.reportCode,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory FindReportShareUrlRequest.fromJson(Map<String, dynamic> map) {
+		return FindReportShareUrlRequest( 
+			reportCode: map['ReportCode'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(reportCode != null)
+			map['ReportCode'] = reportCode;
+		return map;
+	}
+}
+
 

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

@@ -30,6 +30,7 @@ class UserDTO extends UserBaseDTO{
 	bool isDirector;
 	List<String>? fieldList;
 	List<String>? deletePatientCodes;
+	bool isBatchExportDiagnoseData;
 
 	UserDTO({
 		this.phone,
@@ -52,6 +53,7 @@ class UserDTO extends UserBaseDTO{
 		this.isDirector = false,
 		this.fieldList,
 		this.deletePatientCodes,
+		this.isBatchExportDiagnoseData = false,
 		String? userCode,
 		String? userName,
 		String? headImageUrl,
@@ -87,6 +89,7 @@ class UserDTO extends UserBaseDTO{
 			isDirector: map['IsDirector'],
 			fieldList: map['FieldList'] != null ? map['FieldList'].cast<String>().toList() : null,
 			deletePatientCodes: map['DeletePatientCodes'] != null ? map['DeletePatientCodes'].cast<String>().toList() : null,
+			isBatchExportDiagnoseData: map['IsBatchExportDiagnoseData'],
 			userCode: map['UserCode'],
 			userName: map['UserName'],
 			headImageUrl: map['HeadImageUrl'],
@@ -133,6 +136,7 @@ class UserDTO extends UserBaseDTO{
 			map['FieldList'] = fieldList;
 		if(deletePatientCodes != null)
 			map['DeletePatientCodes'] = deletePatientCodes;
+		map['IsBatchExportDiagnoseData'] = isBatchExportDiagnoseData;
 		return map;
 	}
 }