patient.m.dart 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638
  1. import 'aIDiagnosis.m.dart';
  2. import 'connect.m.dart';
  3. import 'authentication.m.dart';
  4. import 'package:fis_jsonrpc/utils.dart';
  5. class DataItemDTO {
  6. String? key;
  7. String? value;
  8. DataItemDTO({
  9. this.key,
  10. this.value,
  11. });
  12. factory DataItemDTO.fromJson(Map<String, dynamic> map) {
  13. return DataItemDTO(
  14. key: map['Key'],
  15. value: map['Value'],
  16. );
  17. }
  18. Map<String, dynamic> toJson() {
  19. final map = Map<String, dynamic>();
  20. if(key != null)
  21. map['Key'] = key;
  22. if(value != null)
  23. map['Value'] = value;
  24. return map;
  25. }
  26. }
  27. class CreatePatientRequest extends TokenRequest{
  28. List<DataItemDTO>? patientData;
  29. List<String>? assignmentUserCodes;
  30. CreatePatientRequest({
  31. this.patientData,
  32. this.assignmentUserCodes,
  33. String? token,
  34. }) : super(
  35. token: token,
  36. );
  37. factory CreatePatientRequest.fromJson(Map<String, dynamic> map) {
  38. return CreatePatientRequest(
  39. patientData: map['PatientData'] != null ? (map['PatientData'] as List).map((e)=>DataItemDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  40. assignmentUserCodes: map['AssignmentUserCodes'] != null ? map['AssignmentUserCodes'].cast<String>().toList() : null,
  41. token: map['Token'],
  42. );
  43. }
  44. Map<String, dynamic> toJson() {
  45. final map = super.toJson();
  46. if(patientData != null)
  47. map['PatientData'] = patientData;
  48. if(assignmentUserCodes != null)
  49. map['AssignmentUserCodes'] = assignmentUserCodes;
  50. return map;
  51. }
  52. }
  53. class UpdatePatientRequest extends TokenRequest{
  54. String? code;
  55. List<DataItemDTO>? patientData;
  56. List<String>? assignmentUserCodes;
  57. UpdatePatientRequest({
  58. this.code,
  59. this.patientData,
  60. this.assignmentUserCodes,
  61. String? token,
  62. }) : super(
  63. token: token,
  64. );
  65. factory UpdatePatientRequest.fromJson(Map<String, dynamic> map) {
  66. return UpdatePatientRequest(
  67. code: map['Code'],
  68. patientData: map['PatientData'] != null ? (map['PatientData'] as List).map((e)=>DataItemDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  69. assignmentUserCodes: map['AssignmentUserCodes'] != null ? map['AssignmentUserCodes'].cast<String>().toList() : null,
  70. token: map['Token'],
  71. );
  72. }
  73. Map<String, dynamic> toJson() {
  74. final map = super.toJson();
  75. if(code != null)
  76. map['Code'] = code;
  77. if(patientData != null)
  78. map['PatientData'] = patientData;
  79. if(assignmentUserCodes != null)
  80. map['AssignmentUserCodes'] = assignmentUserCodes;
  81. return map;
  82. }
  83. }
  84. class PatientInfoBaseDTO extends BaseDTO{
  85. String? patientCode;
  86. String? name;
  87. String? phone;
  88. String? identityCard;
  89. String? insuranceCode;
  90. String? age;
  91. int gender;
  92. bool isValid;
  93. String? organizationCode;
  94. List<String>? assignmentUserCodes;
  95. List<DataItemDTO>? patientData;
  96. int unReadRecordCount;
  97. String? headImgUrl;
  98. String? patientType;
  99. PatientInfoBaseDTO({
  100. this.patientCode,
  101. this.name,
  102. this.phone,
  103. this.identityCard,
  104. this.insuranceCode,
  105. this.age,
  106. this.gender = 0,
  107. this.isValid = false,
  108. this.organizationCode,
  109. this.assignmentUserCodes,
  110. this.patientData,
  111. this.unReadRecordCount = 0,
  112. this.headImgUrl,
  113. this.patientType,
  114. DateTime? createTime,
  115. DateTime? updateTime,
  116. }) : super(
  117. createTime: createTime,
  118. updateTime: updateTime,
  119. );
  120. factory PatientInfoBaseDTO.fromJson(Map<String, dynamic> map) {
  121. return PatientInfoBaseDTO(
  122. patientCode: map['PatientCode'],
  123. name: map['Name'],
  124. phone: map['Phone'],
  125. identityCard: map['IdentityCard'],
  126. insuranceCode: map['InsuranceCode'],
  127. age: map['Age'],
  128. gender: map['Gender'],
  129. isValid: map['IsValid'],
  130. organizationCode: map['OrganizationCode'],
  131. assignmentUserCodes: map['AssignmentUserCodes'] != null ? map['AssignmentUserCodes'].cast<String>().toList() : null,
  132. patientData: map['PatientData'] != null ? (map['PatientData'] as List).map((e)=>DataItemDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  133. unReadRecordCount: map['UnReadRecordCount'],
  134. headImgUrl: map['HeadImgUrl'],
  135. patientType: map['PatientType'],
  136. createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
  137. updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
  138. );
  139. }
  140. Map<String, dynamic> toJson() {
  141. final map = super.toJson();
  142. if(patientCode != null)
  143. map['PatientCode'] = patientCode;
  144. if(name != null)
  145. map['Name'] = name;
  146. if(phone != null)
  147. map['Phone'] = phone;
  148. if(identityCard != null)
  149. map['IdentityCard'] = identityCard;
  150. if(insuranceCode != null)
  151. map['InsuranceCode'] = insuranceCode;
  152. if(age != null)
  153. map['Age'] = age;
  154. map['Gender'] = gender;
  155. map['IsValid'] = isValid;
  156. if(organizationCode != null)
  157. map['OrganizationCode'] = organizationCode;
  158. if(assignmentUserCodes != null)
  159. map['AssignmentUserCodes'] = assignmentUserCodes;
  160. if(patientData != null)
  161. map['PatientData'] = patientData;
  162. map['UnReadRecordCount'] = unReadRecordCount;
  163. if(headImgUrl != null)
  164. map['HeadImgUrl'] = headImgUrl;
  165. if(patientType != null)
  166. map['PatientType'] = patientType;
  167. return map;
  168. }
  169. }
  170. class PatientInfoDTO extends PatientInfoBaseDTO{
  171. String? creatorCode;
  172. String? deviceCode;
  173. List<String>? updateUsers;
  174. PatientInfoDTO({
  175. this.creatorCode,
  176. this.deviceCode,
  177. this.updateUsers,
  178. String? patientCode,
  179. String? name,
  180. String? phone,
  181. String? identityCard,
  182. String? insuranceCode,
  183. String? age,
  184. int gender = 0,
  185. bool isValid = false,
  186. String? organizationCode,
  187. List<String>? assignmentUserCodes,
  188. List<DataItemDTO>? patientData,
  189. int unReadRecordCount = 0,
  190. String? headImgUrl,
  191. String? patientType,
  192. DateTime? createTime,
  193. DateTime? updateTime,
  194. }) : super(
  195. patientCode: patientCode,
  196. name: name,
  197. phone: phone,
  198. identityCard: identityCard,
  199. insuranceCode: insuranceCode,
  200. age: age,
  201. gender: gender,
  202. isValid: isValid,
  203. organizationCode: organizationCode,
  204. assignmentUserCodes: assignmentUserCodes,
  205. patientData: patientData,
  206. unReadRecordCount: unReadRecordCount,
  207. headImgUrl: headImgUrl,
  208. patientType: patientType,
  209. createTime: createTime,
  210. updateTime: updateTime,
  211. );
  212. factory PatientInfoDTO.fromJson(Map<String, dynamic> map) {
  213. return PatientInfoDTO(
  214. creatorCode: map['CreatorCode'],
  215. deviceCode: map['DeviceCode'],
  216. updateUsers: map['UpdateUsers'] != null ? map['UpdateUsers'].cast<String>().toList() : null,
  217. patientCode: map['PatientCode'],
  218. name: map['Name'],
  219. phone: map['Phone'],
  220. identityCard: map['IdentityCard'],
  221. insuranceCode: map['InsuranceCode'],
  222. age: map['Age'],
  223. gender: map['Gender'],
  224. isValid: map['IsValid'],
  225. organizationCode: map['OrganizationCode'],
  226. assignmentUserCodes: map['AssignmentUserCodes'] != null ? map['AssignmentUserCodes'].cast<String>().toList() : null,
  227. patientData: map['PatientData'] != null ? (map['PatientData'] as List).map((e)=>DataItemDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  228. unReadRecordCount: map['UnReadRecordCount'],
  229. headImgUrl: map['HeadImgUrl'],
  230. patientType: map['PatientType'],
  231. createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
  232. updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
  233. );
  234. }
  235. Map<String, dynamic> toJson() {
  236. final map = super.toJson();
  237. if(creatorCode != null)
  238. map['CreatorCode'] = creatorCode;
  239. if(deviceCode != null)
  240. map['DeviceCode'] = deviceCode;
  241. if(updateUsers != null)
  242. map['UpdateUsers'] = updateUsers;
  243. return map;
  244. }
  245. }
  246. class CreatePatientsRequest extends TokenRequest{
  247. List<PatientInfoDTO>? patients;
  248. CreatePatientsRequest({
  249. this.patients,
  250. String? token,
  251. }) : super(
  252. token: token,
  253. );
  254. factory CreatePatientsRequest.fromJson(Map<String, dynamic> map) {
  255. return CreatePatientsRequest(
  256. patients: map['Patients'] != null ? (map['Patients'] as List).map((e)=>PatientInfoDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  257. token: map['Token'],
  258. );
  259. }
  260. Map<String, dynamic> toJson() {
  261. final map = super.toJson();
  262. if(patients != null)
  263. map['Patients'] = patients;
  264. return map;
  265. }
  266. }
  267. class ClientPatientInfoBaseDTO extends BaseDTO{
  268. String? patientCode;
  269. bool isValid;
  270. List<DataItemDTO>? patientData;
  271. int unReadRecordCount;
  272. ClientPatientInfoBaseDTO({
  273. this.patientCode,
  274. this.isValid = false,
  275. this.patientData,
  276. this.unReadRecordCount = 0,
  277. DateTime? createTime,
  278. DateTime? updateTime,
  279. }) : super(
  280. createTime: createTime,
  281. updateTime: updateTime,
  282. );
  283. factory ClientPatientInfoBaseDTO.fromJson(Map<String, dynamic> map) {
  284. return ClientPatientInfoBaseDTO(
  285. patientCode: map['PatientCode'],
  286. isValid: map['IsValid'],
  287. patientData: map['PatientData'] != null ? (map['PatientData'] as List).map((e)=>DataItemDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  288. unReadRecordCount: map['UnReadRecordCount'],
  289. createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
  290. updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
  291. );
  292. }
  293. Map<String, dynamic> toJson() {
  294. final map = super.toJson();
  295. if(patientCode != null)
  296. map['PatientCode'] = patientCode;
  297. map['IsValid'] = isValid;
  298. if(patientData != null)
  299. map['PatientData'] = patientData;
  300. map['UnReadRecordCount'] = unReadRecordCount;
  301. return map;
  302. }
  303. }
  304. enum PatientValidStatusEnum {
  305. All,
  306. CheckOut,
  307. CheckIn,
  308. }
  309. class FindPatientsPageRequest extends PageRequest{
  310. String? keyWord;
  311. DateTime? startTime;
  312. DateTime? endTime;
  313. PatientValidStatusEnum isValid;
  314. FindPatientsPageRequest({
  315. this.keyWord,
  316. this.startTime,
  317. this.endTime,
  318. this.isValid = PatientValidStatusEnum.All,
  319. int pageIndex = 0,
  320. int pageSize = 0,
  321. String? token,
  322. }) : super(
  323. pageIndex: pageIndex,
  324. pageSize: pageSize,
  325. token: token,
  326. );
  327. factory FindPatientsPageRequest.fromJson(Map<String, dynamic> map) {
  328. return FindPatientsPageRequest(
  329. keyWord: map['KeyWord'],
  330. startTime: map['StartTime'] != null ? DateTime.parse(map['StartTime']) : null,
  331. endTime: map['EndTime'] != null ? DateTime.parse(map['EndTime']) : null,
  332. isValid: PatientValidStatusEnum.values.firstWhere((e) => e.index == map['IsValid']),
  333. pageIndex: map['PageIndex'],
  334. pageSize: map['PageSize'],
  335. token: map['Token'],
  336. );
  337. }
  338. Map<String, dynamic> toJson() {
  339. final map = super.toJson();
  340. if(keyWord != null)
  341. map['KeyWord'] = keyWord;
  342. if(startTime != null)
  343. map['StartTime'] = JsonRpcUtils.dateFormat(startTime!);
  344. if(endTime != null)
  345. map['EndTime'] = JsonRpcUtils.dateFormat(endTime!);
  346. map['IsValid'] = isValid.index;
  347. return map;
  348. }
  349. }
  350. class UserBaseDTO extends BaseDTO{
  351. String? userCode;
  352. String? userName;
  353. String? headImageUrl;
  354. UserBaseDTO({
  355. this.userCode,
  356. this.userName,
  357. this.headImageUrl,
  358. DateTime? createTime,
  359. DateTime? updateTime,
  360. }) : super(
  361. createTime: createTime,
  362. updateTime: updateTime,
  363. );
  364. factory UserBaseDTO.fromJson(Map<String, dynamic> map) {
  365. return UserBaseDTO(
  366. userCode: map['UserCode'],
  367. userName: map['UserName'],
  368. headImageUrl: map['HeadImageUrl'],
  369. createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
  370. updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
  371. );
  372. }
  373. Map<String, dynamic> toJson() {
  374. final map = super.toJson();
  375. if(userCode != null)
  376. map['UserCode'] = userCode;
  377. if(userName != null)
  378. map['UserName'] = userName;
  379. if(headImageUrl != null)
  380. map['HeadImageUrl'] = headImageUrl;
  381. return map;
  382. }
  383. }
  384. enum RecordStatusEnum {
  385. NotScanned,
  386. Uploaded,
  387. NotReport,
  388. Completed,
  389. }
  390. class TerminalImageDTO {
  391. String? previewUrl;
  392. String? imageUrl;
  393. String? coverImageUrl;
  394. TerminalImageDTO({
  395. this.previewUrl,
  396. this.imageUrl,
  397. this.coverImageUrl,
  398. });
  399. factory TerminalImageDTO.fromJson(Map<String, dynamic> map) {
  400. return TerminalImageDTO(
  401. previewUrl: map['PreviewUrl'],
  402. imageUrl: map['ImageUrl'],
  403. coverImageUrl: map['CoverImageUrl'],
  404. );
  405. }
  406. Map<String, dynamic> toJson() {
  407. final map = Map<String, dynamic>();
  408. if(previewUrl != null)
  409. map['PreviewUrl'] = previewUrl;
  410. if(imageUrl != null)
  411. map['ImageUrl'] = imageUrl;
  412. if(coverImageUrl != null)
  413. map['CoverImageUrl'] = coverImageUrl;
  414. return map;
  415. }
  416. }
  417. enum RemedicalFileDataTypeEnum {
  418. VinnoVidSingle,
  419. ThirdVidSingle,
  420. VinnoVidMovie,
  421. ThirdVidMovie,
  422. Image,
  423. }
  424. class ImageLocationDTO {
  425. String? group;
  426. String? position;
  427. String? quadrant;
  428. ImageLocationDTO({
  429. this.group,
  430. this.position,
  431. this.quadrant,
  432. });
  433. factory ImageLocationDTO.fromJson(Map<String, dynamic> map) {
  434. return ImageLocationDTO(
  435. group: map['Group'],
  436. position: map['Position'],
  437. quadrant: map['Quadrant'],
  438. );
  439. }
  440. Map<String, dynamic> toJson() {
  441. final map = Map<String, dynamic>();
  442. if(group != null)
  443. map['Group'] = group;
  444. if(position != null)
  445. map['Position'] = position;
  446. if(quadrant != null)
  447. map['Quadrant'] = quadrant;
  448. return map;
  449. }
  450. }
  451. enum DiagnosisConclusionEnum {
  452. NotRequired,
  453. InProcess,
  454. Unrecognized,
  455. NoObviousLesion,
  456. Benign,
  457. Malignant,
  458. BenignAndMalignant,
  459. }
  460. enum DiagnosisOrganEnum {
  461. Null,
  462. placeHolder_1,
  463. Breast,
  464. Abdomen,
  465. Liver,
  466. Cholecyst,
  467. Kidney,
  468. Spleen,
  469. }
  470. enum Unit {
  471. None,
  472. percent,
  473. fraction,
  474. placeHolder_3,
  475. placeHolder_4,
  476. placeHolder_5,
  477. placeHolder_6,
  478. placeHolder_7,
  479. placeHolder_8,
  480. placeHolder_9,
  481. cm,
  482. mm,
  483. inch,
  484. ft,
  485. placeHolder_14,
  486. placeHolder_15,
  487. placeHolder_16,
  488. placeHolder_17,
  489. placeHolder_18,
  490. placeHolder_19,
  491. s,
  492. minute,
  493. hour,
  494. day,
  495. week,
  496. week_day,
  497. Tick,
  498. msec,
  499. placeHolder_28,
  500. placeHolder_29,
  501. degree,
  502. radian,
  503. placeHolder_32,
  504. placeHolder_33,
  505. placeHolder_34,
  506. placeHolder_35,
  507. placeHolder_36,
  508. placeHolder_37,
  509. placeHolder_38,
  510. placeHolder_39,
  511. g,
  512. mg,
  513. ng,
  514. kg,
  515. oz,
  516. lb,
  517. lb_oz,
  518. placeHolder_47,
  519. placeHolder_48,
  520. placeHolder_49,
  521. cm2,
  522. mm2,
  523. m2,
  524. placeHolder_53,
  525. placeHolder_54,
  526. placeHolder_55,
  527. placeHolder_56,
  528. placeHolder_57,
  529. placeHolder_58,
  530. placeHolder_59,
  531. cm3,
  532. mm3,
  533. ml,
  534. L,
  535. placeHolder_64,
  536. placeHolder_65,
  537. placeHolder_66,
  538. placeHolder_67,
  539. placeHolder_68,
  540. placeHolder_69,
  541. cms,
  542. mms,
  543. ms,
  544. placeHolder_73,
  545. placeHolder_74,
  546. placeHolder_75,
  547. placeHolder_76,
  548. placeHolder_77,
  549. placeHolder_78,
  550. placeHolder_79,
  551. cms2,
  552. mms2,
  553. placeHolder_82,
  554. placeHolder_83,
  555. placeHolder_84,
  556. placeHolder_85,
  557. placeHolder_86,
  558. placeHolder_87,
  559. placeHolder_88,
  560. placeHolder_89,
  561. cm3s,
  562. mls,
  563. mlmin,
  564. Lmin,
  565. placeHolder_94,
  566. placeHolder_95,
  567. placeHolder_96,
  568. placeHolder_97,
  569. placeHolder_98,
  570. placeHolder_99,
  571. gcm3,
  572. gml,
  573. ngml,
  574. placeHolder_103,
  575. placeHolder_104,
  576. placeHolder_105,
  577. placeHolder_106,
  578. placeHolder_107,
  579. placeHolder_108,
  580. placeHolder_109,
  581. mmHg,
  582. placeHolder_111,
  583. placeHolder_112,
  584. placeHolder_113,
  585. placeHolder_114,
  586. placeHolder_115,
  587. placeHolder_116,
  588. placeHolder_117,
  589. placeHolder_118,
  590. placeHolder_119,
  591. mV,
  592. placeHolder_121,
  593. placeHolder_122,
  594. placeHolder_123,
  595. placeHolder_124,
  596. placeHolder_125,
  597. placeHolder_126,
  598. placeHolder_127,
  599. placeHolder_128,
  600. placeHolder_129,
  601. Hz,
  602. KHz,
  603. HR,
  604. placeHolder_133,
  605. placeHolder_134,
  606. placeHolder_135,
  607. placeHolder_136,
  608. placeHolder_137,
  609. placeHolder_138,
  610. placeHolder_139,
  611. cm3m2,
  612. mlm2,
  613. placeHolder_142,
  614. placeHolder_143,
  615. placeHolder_144,
  616. placeHolder_145,
  617. placeHolder_146,
  618. placeHolder_147,
  619. placeHolder_148,
  620. placeHolder_149,
  621. cm3sm2,
  622. mlsm2,
  623. placeHolder_152,
  624. cm3minm2,
  625. mlminm2,
  626. Lminm2,
  627. placeHolder_156,
  628. placeHolder_157,
  629. placeHolder_158,
  630. placeHolder_159,
  631. circs,
  632. placeHolder_161,
  633. placeHolder_162,
  634. placeHolder_163,
  635. placeHolder_164,
  636. placeHolder_165,
  637. placeHolder_166,
  638. placeHolder_167,
  639. placeHolder_168,
  640. placeHolder_169,
  641. mlbeat,
  642. placeHolder_171,
  643. placeHolder_172,
  644. placeHolder_173,
  645. placeHolder_174,
  646. placeHolder_175,
  647. placeHolder_176,
  648. placeHolder_177,
  649. placeHolder_178,
  650. placeHolder_179,
  651. mm2pa,
  652. d1mpa,
  653. kpa,
  654. placeHolder_183,
  655. placeHolder_184,
  656. placeHolder_185,
  657. placeHolder_186,
  658. placeHolder_187,
  659. placeHolder_188,
  660. placeHolder_189,
  661. mmHgs,
  662. placeHolder_191,
  663. placeHolder_192,
  664. placeHolder_193,
  665. placeHolder_194,
  666. placeHolder_195,
  667. placeHolder_196,
  668. placeHolder_197,
  669. placeHolder_198,
  670. placeHolder_199,
  671. gm2,
  672. kgm2,
  673. placeHolder_202,
  674. placeHolder_203,
  675. placeHolder_204,
  676. placeHolder_205,
  677. placeHolder_206,
  678. placeHolder_207,
  679. placeHolder_208,
  680. placeHolder_209,
  681. cm2m2,
  682. placeHolder_211,
  683. placeHolder_212,
  684. placeHolder_213,
  685. placeHolder_214,
  686. placeHolder_215,
  687. placeHolder_216,
  688. placeHolder_217,
  689. placeHolder_218,
  690. placeHolder_219,
  691. cmm2,
  692. mmm2,
  693. placeHolder_222,
  694. placeHolder_223,
  695. placeHolder_224,
  696. placeHolder_225,
  697. placeHolder_226,
  698. placeHolder_227,
  699. placeHolder_228,
  700. placeHolder_229,
  701. pers,
  702. placeHolder_231,
  703. placeHolder_232,
  704. placeHolder_233,
  705. placeHolder_234,
  706. placeHolder_235,
  707. placeHolder_236,
  708. placeHolder_237,
  709. placeHolder_238,
  710. placeHolder_239,
  711. placeHolder_240,
  712. placeHolder_241,
  713. placeHolder_242,
  714. placeHolder_243,
  715. placeHolder_244,
  716. placeHolder_245,
  717. placeHolder_246,
  718. placeHolder_247,
  719. placeHolder_248,
  720. placeHolder_249,
  721. Celsius,
  722. Fahrenheit,
  723. placeHolder_252,
  724. placeHolder_253,
  725. placeHolder_254,
  726. placeHolder_255,
  727. placeHolder_256,
  728. placeHolder_257,
  729. placeHolder_258,
  730. placeHolder_259,
  731. Ohm,
  732. placeHolder_261,
  733. placeHolder_262,
  734. placeHolder_263,
  735. placeHolder_264,
  736. placeHolder_265,
  737. placeHolder_266,
  738. placeHolder_267,
  739. placeHolder_268,
  740. placeHolder_269,
  741. mmHgml,
  742. }
  743. class MeasuredValueDTO {
  744. String? typeName;
  745. String? name;
  746. String? description;
  747. bool worksheetAffinity;
  748. String? briefDescription;
  749. String? value;
  750. Unit unit;
  751. Unit targetUnit;
  752. MeasuredValueDTO({
  753. this.typeName,
  754. this.name,
  755. this.description,
  756. this.worksheetAffinity = false,
  757. this.briefDescription,
  758. this.value,
  759. this.unit = Unit.None,
  760. this.targetUnit = Unit.None,
  761. });
  762. factory MeasuredValueDTO.fromJson(Map<String, dynamic> map) {
  763. return MeasuredValueDTO(
  764. typeName: map['TypeName'],
  765. name: map['Name'],
  766. description: map['Description'],
  767. worksheetAffinity: map['WorksheetAffinity'],
  768. briefDescription: map['BriefDescription'],
  769. value: map['Value'],
  770. unit: Unit.values.firstWhere((e) => e.index == map['Unit']),
  771. targetUnit: Unit.values.firstWhere((e) => e.index == map['TargetUnit']),
  772. );
  773. }
  774. Map<String, dynamic> toJson() {
  775. final map = Map<String, dynamic>();
  776. if(typeName != null)
  777. map['TypeName'] = typeName;
  778. if(name != null)
  779. map['Name'] = name;
  780. if(description != null)
  781. map['Description'] = description;
  782. map['WorksheetAffinity'] = worksheetAffinity;
  783. if(briefDescription != null)
  784. map['BriefDescription'] = briefDescription;
  785. if(value != null)
  786. map['Value'] = value;
  787. map['Unit'] = unit.index;
  788. map['TargetUnit'] = targetUnit.index;
  789. return map;
  790. }
  791. }
  792. class PointDTO {
  793. double x;
  794. double y;
  795. PointDTO({
  796. this.x = 0,
  797. this.y = 0,
  798. });
  799. factory PointDTO.fromJson(Map<String, dynamic> map) {
  800. return PointDTO(
  801. x: map['X'],
  802. y: map['Y'],
  803. );
  804. }
  805. Map<String, dynamic> toJson() {
  806. final map = Map<String, dynamic>();
  807. map['X'] = x;
  808. map['Y'] = y;
  809. return map;
  810. }
  811. }
  812. class MeasuredFeatureDTO {
  813. String? typeName;
  814. String? creator;
  815. String? guid;
  816. bool showChildFeatures;
  817. DateTime? timeStamp;
  818. bool isAutoCalculated;
  819. bool isVisible;
  820. String? annotation;
  821. String? briefAnnotation;
  822. String? baseType;
  823. Unit xUnit;
  824. Unit yUnit;
  825. String? shapeType;
  826. List<MeasuredValueDTO>? values;
  827. List<PointDTO>? points;
  828. MeasuredFeatureDTO({
  829. this.typeName,
  830. this.creator,
  831. this.guid,
  832. this.showChildFeatures = false,
  833. this.timeStamp,
  834. this.isAutoCalculated = false,
  835. this.isVisible = false,
  836. this.annotation,
  837. this.briefAnnotation,
  838. this.baseType,
  839. this.xUnit = Unit.None,
  840. this.yUnit = Unit.None,
  841. this.shapeType,
  842. this.values,
  843. this.points,
  844. });
  845. factory MeasuredFeatureDTO.fromJson(Map<String, dynamic> map) {
  846. return MeasuredFeatureDTO(
  847. typeName: map['TypeName'],
  848. creator: map['Creator'],
  849. guid: map['Guid'],
  850. showChildFeatures: map['ShowChildFeatures'],
  851. timeStamp: map['TimeStamp'] != null ? DateTime.parse(map['TimeStamp']) : null,
  852. isAutoCalculated: map['IsAutoCalculated'],
  853. isVisible: map['IsVisible'],
  854. annotation: map['Annotation'],
  855. briefAnnotation: map['BriefAnnotation'],
  856. baseType: map['BaseType'],
  857. xUnit: Unit.values.firstWhere((e) => e.index == map['XUnit']),
  858. yUnit: Unit.values.firstWhere((e) => e.index == map['YUnit']),
  859. shapeType: map['ShapeType'],
  860. values: map['Values'] != null ? (map['Values'] as List).map((e)=>MeasuredValueDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  861. points: map['Points'] != null ? (map['Points'] as List).map((e)=>PointDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  862. );
  863. }
  864. Map<String, dynamic> toJson() {
  865. final map = Map<String, dynamic>();
  866. if(typeName != null)
  867. map['TypeName'] = typeName;
  868. if(creator != null)
  869. map['Creator'] = creator;
  870. if(guid != null)
  871. map['Guid'] = guid;
  872. map['ShowChildFeatures'] = showChildFeatures;
  873. if(timeStamp != null)
  874. map['TimeStamp'] = JsonRpcUtils.dateFormat(timeStamp!);
  875. map['IsAutoCalculated'] = isAutoCalculated;
  876. map['IsVisible'] = isVisible;
  877. if(annotation != null)
  878. map['Annotation'] = annotation;
  879. if(briefAnnotation != null)
  880. map['BriefAnnotation'] = briefAnnotation;
  881. if(baseType != null)
  882. map['BaseType'] = baseType;
  883. map['XUnit'] = xUnit.index;
  884. map['YUnit'] = yUnit.index;
  885. if(shapeType != null)
  886. map['ShapeType'] = shapeType;
  887. if(values != null)
  888. map['Values'] = values;
  889. if(points != null)
  890. map['Points'] = points;
  891. return map;
  892. }
  893. }
  894. class ChildrenFetusNodeDTO {
  895. String? typeName;
  896. String? folderName;
  897. String? folderDescription;
  898. String? modeName;
  899. String? applicationId;
  900. String? application;
  901. List<MeasuredFeatureDTO>? children;
  902. ChildrenFetusNodeDTO({
  903. this.typeName,
  904. this.folderName,
  905. this.folderDescription,
  906. this.modeName,
  907. this.applicationId,
  908. this.application,
  909. this.children,
  910. });
  911. factory ChildrenFetusNodeDTO.fromJson(Map<String, dynamic> map) {
  912. return ChildrenFetusNodeDTO(
  913. typeName: map['TypeName'],
  914. folderName: map['FolderName'],
  915. folderDescription: map['FolderDescription'],
  916. modeName: map['ModeName'],
  917. applicationId: map['ApplicationId'],
  918. application: map['Application'],
  919. children: map['Children'] != null ? (map['Children'] as List).map((e)=>MeasuredFeatureDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  920. );
  921. }
  922. Map<String, dynamic> toJson() {
  923. final map = Map<String, dynamic>();
  924. if(typeName != null)
  925. map['TypeName'] = typeName;
  926. if(folderName != null)
  927. map['FolderName'] = folderName;
  928. if(folderDescription != null)
  929. map['FolderDescription'] = folderDescription;
  930. if(modeName != null)
  931. map['ModeName'] = modeName;
  932. if(applicationId != null)
  933. map['ApplicationId'] = applicationId;
  934. if(application != null)
  935. map['Application'] = application;
  936. if(children != null)
  937. map['Children'] = children;
  938. return map;
  939. }
  940. }
  941. class FetusNodeDTO {
  942. String? typeName;
  943. String? fetusIndex;
  944. List<ChildrenFetusNodeDTO>? children;
  945. FetusNodeDTO({
  946. this.typeName,
  947. this.fetusIndex,
  948. this.children,
  949. });
  950. factory FetusNodeDTO.fromJson(Map<String, dynamic> map) {
  951. return FetusNodeDTO(
  952. typeName: map['TypeName'],
  953. fetusIndex: map['FetusIndex'],
  954. children: map['Children'] != null ? (map['Children'] as List).map((e)=>ChildrenFetusNodeDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  955. );
  956. }
  957. Map<String, dynamic> toJson() {
  958. final map = Map<String, dynamic>();
  959. if(typeName != null)
  960. map['TypeName'] = typeName;
  961. if(fetusIndex != null)
  962. map['FetusIndex'] = fetusIndex;
  963. if(children != null)
  964. map['Children'] = children;
  965. return map;
  966. }
  967. }
  968. class MeasuredResultsDTO {
  969. String? version;
  970. List<FetusNodeDTO>? fetusNodes;
  971. MeasuredResultsDTO({
  972. this.version,
  973. this.fetusNodes,
  974. });
  975. factory MeasuredResultsDTO.fromJson(Map<String, dynamic> map) {
  976. return MeasuredResultsDTO(
  977. version: map['Version'],
  978. fetusNodes: map['FetusNodes'] != null ? (map['FetusNodes'] as List).map((e)=>FetusNodeDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  979. );
  980. }
  981. Map<String, dynamic> toJson() {
  982. final map = Map<String, dynamic>();
  983. if(version != null)
  984. map['Version'] = version;
  985. if(fetusNodes != null)
  986. map['FetusNodes'] = fetusNodes;
  987. return map;
  988. }
  989. }
  990. class AdornerDTO {
  991. String? adornerTypeName;
  992. PointDTO? topLeft;
  993. String? content;
  994. AdornerDTO({
  995. this.adornerTypeName,
  996. this.topLeft,
  997. this.content,
  998. });
  999. factory AdornerDTO.fromJson(Map<String, dynamic> map) {
  1000. return AdornerDTO(
  1001. adornerTypeName: map['AdornerTypeName'],
  1002. topLeft: map['TopLeft'] != null ? PointDTO.fromJson(map['TopLeft']) : null,
  1003. content: map['Content'],
  1004. );
  1005. }
  1006. Map<String, dynamic> toJson() {
  1007. final map = Map<String, dynamic>();
  1008. if(adornerTypeName != null)
  1009. map['AdornerTypeName'] = adornerTypeName;
  1010. if(topLeft != null)
  1011. map['TopLeft'] = topLeft;
  1012. if(content != null)
  1013. map['Content'] = content;
  1014. return map;
  1015. }
  1016. }
  1017. class BaseAreaDTO {
  1018. String? visualAreaTypeName;
  1019. List<AdornerDTO>? adorner;
  1020. BaseAreaDTO({
  1021. this.visualAreaTypeName,
  1022. this.adorner,
  1023. });
  1024. factory BaseAreaDTO.fromJson(Map<String, dynamic> map) {
  1025. return BaseAreaDTO(
  1026. visualAreaTypeName: map['VisualAreaTypeName'],
  1027. adorner: map['Adorner'] != null ? (map['Adorner'] as List).map((e)=>AdornerDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  1028. );
  1029. }
  1030. Map<String, dynamic> toJson() {
  1031. final map = Map<String, dynamic>();
  1032. if(visualAreaTypeName != null)
  1033. map['VisualAreaTypeName'] = visualAreaTypeName;
  1034. if(adorner != null)
  1035. map['Adorner'] = adorner;
  1036. return map;
  1037. }
  1038. }
  1039. class VisualAreaDTO {
  1040. List<BaseAreaDTO>? children;
  1041. VisualAreaDTO({
  1042. this.children,
  1043. });
  1044. factory VisualAreaDTO.fromJson(Map<String, dynamic> map) {
  1045. return VisualAreaDTO(
  1046. children: map['Children'] != null ? (map['Children'] as List).map((e)=>BaseAreaDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  1047. );
  1048. }
  1049. Map<String, dynamic> toJson() {
  1050. final map = Map<String, dynamic>();
  1051. if(children != null)
  1052. map['Children'] = children;
  1053. return map;
  1054. }
  1055. }
  1056. class VisualKeyDTO {
  1057. String? visualKeyTypeName;
  1058. VisualAreaDTO? visualArea;
  1059. VisualKeyDTO({
  1060. this.visualKeyTypeName,
  1061. this.visualArea,
  1062. });
  1063. factory VisualKeyDTO.fromJson(Map<String, dynamic> map) {
  1064. return VisualKeyDTO(
  1065. visualKeyTypeName: map['VisualKeyTypeName'],
  1066. visualArea: map['VisualArea'] != null ? VisualAreaDTO.fromJson(map['VisualArea']) : null,
  1067. );
  1068. }
  1069. Map<String, dynamic> toJson() {
  1070. final map = Map<String, dynamic>();
  1071. if(visualKeyTypeName != null)
  1072. map['VisualKeyTypeName'] = visualKeyTypeName;
  1073. if(visualArea != null)
  1074. map['VisualArea'] = visualArea;
  1075. return map;
  1076. }
  1077. }
  1078. class VisualDTO {
  1079. List<VisualKeyDTO>? children;
  1080. VisualDTO({
  1081. this.children,
  1082. });
  1083. factory VisualDTO.fromJson(Map<String, dynamic> map) {
  1084. return VisualDTO(
  1085. children: map['Children'] != null ? (map['Children'] as List).map((e)=>VisualKeyDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  1086. );
  1087. }
  1088. Map<String, dynamic> toJson() {
  1089. final map = Map<String, dynamic>();
  1090. if(children != null)
  1091. map['Children'] = children;
  1092. return map;
  1093. }
  1094. }
  1095. class ScanImageDTO {
  1096. VisualDTO? visual;
  1097. ScanImageDTO({
  1098. this.visual,
  1099. });
  1100. factory ScanImageDTO.fromJson(Map<String, dynamic> map) {
  1101. return ScanImageDTO(
  1102. visual: map['Visual'] != null ? VisualDTO.fromJson(map['Visual']) : null,
  1103. );
  1104. }
  1105. Map<String, dynamic> toJson() {
  1106. final map = Map<String, dynamic>();
  1107. if(visual != null)
  1108. map['Visual'] = visual;
  1109. return map;
  1110. }
  1111. }
  1112. enum CarotidScanTypeEnum {
  1113. CarotidLeft,
  1114. CarotidRight,
  1115. }
  1116. enum CarotidScanDirectionEnum {
  1117. TopToBottom,
  1118. BottomToTop,
  1119. }
  1120. enum CarotidAIImageTypeEnum {
  1121. Base,
  1122. YShape,
  1123. Plaque,
  1124. }
  1125. class MeasureImageFileDTO {
  1126. CarotidAIImageTypeEnum imageType;
  1127. String? imageFile;
  1128. MeasureImageFileDTO({
  1129. this.imageType = CarotidAIImageTypeEnum.Base,
  1130. this.imageFile,
  1131. });
  1132. factory MeasureImageFileDTO.fromJson(Map<String, dynamic> map) {
  1133. return MeasureImageFileDTO(
  1134. imageType: CarotidAIImageTypeEnum.values.firstWhere((e) => e.index == map['ImageType']),
  1135. imageFile: map['ImageFile'],
  1136. );
  1137. }
  1138. Map<String, dynamic> toJson() {
  1139. final map = Map<String, dynamic>();
  1140. map['ImageType'] = imageType.index;
  1141. if(imageFile != null)
  1142. map['ImageFile'] = imageFile;
  1143. return map;
  1144. }
  1145. }
  1146. class CarotidResultDTO {
  1147. CarotidScanTypeEnum carotidScanType;
  1148. CarotidScanDirectionEnum carotidScanDirection;
  1149. String? surfaceFile;
  1150. String? mdlFile;
  1151. List<MeasureImageFileDTO>? measureImageFiles;
  1152. String? measureResult;
  1153. CarotidResultDTO({
  1154. this.carotidScanType = CarotidScanTypeEnum.CarotidLeft,
  1155. this.carotidScanDirection = CarotidScanDirectionEnum.TopToBottom,
  1156. this.surfaceFile,
  1157. this.mdlFile,
  1158. this.measureImageFiles,
  1159. this.measureResult,
  1160. });
  1161. factory CarotidResultDTO.fromJson(Map<String, dynamic> map) {
  1162. return CarotidResultDTO(
  1163. carotidScanType: CarotidScanTypeEnum.values.firstWhere((e) => e.index == map['CarotidScanType']),
  1164. carotidScanDirection: CarotidScanDirectionEnum.values.firstWhere((e) => e.index == map['CarotidScanDirection']),
  1165. surfaceFile: map['SurfaceFile'],
  1166. mdlFile: map['MdlFile'],
  1167. measureImageFiles: map['MeasureImageFiles'] != null ? (map['MeasureImageFiles'] as List).map((e)=>MeasureImageFileDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  1168. measureResult: map['MeasureResult'],
  1169. );
  1170. }
  1171. Map<String, dynamic> toJson() {
  1172. final map = Map<String, dynamic>();
  1173. map['CarotidScanType'] = carotidScanType.index;
  1174. map['CarotidScanDirection'] = carotidScanDirection.index;
  1175. if(surfaceFile != null)
  1176. map['SurfaceFile'] = surfaceFile;
  1177. if(mdlFile != null)
  1178. map['MdlFile'] = mdlFile;
  1179. if(measureImageFiles != null)
  1180. map['MeasureImageFiles'] = measureImageFiles;
  1181. if(measureResult != null)
  1182. map['MeasureResult'] = measureResult;
  1183. return map;
  1184. }
  1185. }
  1186. class RemedicalInfoDTO extends BaseDTO{
  1187. String? remedicalCode;
  1188. String? deviceCode;
  1189. String? recordCode;
  1190. String? patientScanType;
  1191. String? application;
  1192. TerminalImageDTO? terminalImages;
  1193. RemedicalFileDataTypeEnum fileDataType;
  1194. ImageLocationDTO? imageLocation;
  1195. DiagnosisConclusionEnum diagnosisConclusion;
  1196. String? diagnosisResult;
  1197. List<DiagnosisOrganEnum>? diagnosisOrgans;
  1198. MeasuredResultsDTO? measuredResult;
  1199. ScanImageDTO? commentResult;
  1200. CarotidResultDTO? carotidResult;
  1201. DateTime? createTime;
  1202. DateTime? updateTime;
  1203. RemedicalInfoDTO({
  1204. this.remedicalCode,
  1205. this.deviceCode,
  1206. this.recordCode,
  1207. this.patientScanType,
  1208. this.application,
  1209. this.terminalImages,
  1210. this.fileDataType = RemedicalFileDataTypeEnum.VinnoVidSingle,
  1211. this.imageLocation,
  1212. this.diagnosisConclusion = DiagnosisConclusionEnum.NotRequired,
  1213. this.diagnosisResult,
  1214. this.diagnosisOrgans,
  1215. this.measuredResult,
  1216. this.commentResult,
  1217. this.carotidResult,
  1218. this.createTime,
  1219. this.updateTime,
  1220. });
  1221. factory RemedicalInfoDTO.fromJson(Map<String, dynamic> map) {
  1222. return RemedicalInfoDTO(
  1223. remedicalCode: map['RemedicalCode'],
  1224. deviceCode: map['DeviceCode'],
  1225. recordCode: map['RecordCode'],
  1226. patientScanType: map['PatientScanType'],
  1227. application: map['Application'],
  1228. terminalImages: map['TerminalImages'] != null ? TerminalImageDTO.fromJson(map['TerminalImages']) : null,
  1229. fileDataType: RemedicalFileDataTypeEnum.values.firstWhere((e) => e.index == map['FileDataType']),
  1230. imageLocation: map['ImageLocation'] != null ? ImageLocationDTO.fromJson(map['ImageLocation']) : null,
  1231. diagnosisConclusion: DiagnosisConclusionEnum.values.firstWhere((e) => e.index == map['DiagnosisConclusion']),
  1232. diagnosisResult: map['DiagnosisResult'],
  1233. diagnosisOrgans: map['DiagnosisOrgans'] != null ? (map['DiagnosisOrgans'] as List).map((e)=>DiagnosisOrganEnum.values.firstWhere((i) => i.index == e)).toList() : null,
  1234. measuredResult: map['MeasuredResult'] != null ? MeasuredResultsDTO.fromJson(map['MeasuredResult']) : null,
  1235. commentResult: map['CommentResult'] != null ? ScanImageDTO.fromJson(map['CommentResult']) : null,
  1236. carotidResult: map['CarotidResult'] != null ? CarotidResultDTO.fromJson(map['CarotidResult']) : null,
  1237. createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
  1238. updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
  1239. );
  1240. }
  1241. Map<String, dynamic> toJson() {
  1242. final map = super.toJson();
  1243. return map;
  1244. }
  1245. }
  1246. enum DiagnosisStatusEnum {
  1247. NotRequired,
  1248. Under,
  1249. Completed,
  1250. }
  1251. enum DiagnosisReportStatusEnum {
  1252. NotRequired,
  1253. Reporting,
  1254. Reported,
  1255. }
  1256. class DiagnosisInfoDTO {
  1257. DiagnosisOrganEnum diagnosisOrgan;
  1258. DiagnosisConclusionEnum conclusion;
  1259. DiagnosisReportStatusEnum reportStatus;
  1260. DiagnosisInfoDTO({
  1261. this.diagnosisOrgan = DiagnosisOrganEnum.Null,
  1262. this.conclusion = DiagnosisConclusionEnum.NotRequired,
  1263. this.reportStatus = DiagnosisReportStatusEnum.NotRequired,
  1264. });
  1265. factory DiagnosisInfoDTO.fromJson(Map<String, dynamic> map) {
  1266. return DiagnosisInfoDTO(
  1267. diagnosisOrgan: DiagnosisOrganEnum.values.firstWhere((e) => e.index == map['DiagnosisOrgan']),
  1268. conclusion: DiagnosisConclusionEnum.values.firstWhere((e) => e.index == map['Conclusion']),
  1269. reportStatus: DiagnosisReportStatusEnum.values.firstWhere((e) => e.index == map['ReportStatus']),
  1270. );
  1271. }
  1272. Map<String, dynamic> toJson() {
  1273. final map = Map<String, dynamic>();
  1274. map['DiagnosisOrgan'] = diagnosisOrgan.index;
  1275. map['Conclusion'] = conclusion.index;
  1276. map['ReportStatus'] = reportStatus.index;
  1277. return map;
  1278. }
  1279. }
  1280. class GetRecordsPageDTO {
  1281. DateTime? createTime;
  1282. String? deptName;
  1283. String? creatorName;
  1284. String? deviceName;
  1285. String? reportNum;
  1286. String? recordCode;
  1287. RecordStatusEnum recordStatus;
  1288. bool isRead;
  1289. List<RemedicalInfoDTO>? remedicalList;
  1290. DiagnosisStatusEnum diagnosisStatus;
  1291. List<DiagnosisInfoDTO>? diagnosisInfos;
  1292. GetRecordsPageDTO({
  1293. this.createTime,
  1294. this.deptName,
  1295. this.creatorName,
  1296. this.deviceName,
  1297. this.reportNum,
  1298. this.recordCode,
  1299. this.recordStatus = RecordStatusEnum.NotScanned,
  1300. this.isRead = false,
  1301. this.remedicalList,
  1302. this.diagnosisStatus = DiagnosisStatusEnum.NotRequired,
  1303. this.diagnosisInfos,
  1304. });
  1305. factory GetRecordsPageDTO.fromJson(Map<String, dynamic> map) {
  1306. return GetRecordsPageDTO(
  1307. createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
  1308. deptName: map['DeptName'],
  1309. creatorName: map['CreatorName'],
  1310. deviceName: map['DeviceName'],
  1311. reportNum: map['ReportNum'],
  1312. recordCode: map['RecordCode'],
  1313. recordStatus: RecordStatusEnum.values.firstWhere((e) => e.index == map['RecordStatus']),
  1314. isRead: map['IsRead'],
  1315. remedicalList: map['RemedicalList'] != null ? (map['RemedicalList'] as List).map((e)=>RemedicalInfoDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  1316. diagnosisStatus: DiagnosisStatusEnum.values.firstWhere((e) => e.index == map['DiagnosisStatus']),
  1317. diagnosisInfos: map['DiagnosisInfos'] != null ? (map['DiagnosisInfos'] as List).map((e)=>DiagnosisInfoDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  1318. );
  1319. }
  1320. Map<String, dynamic> toJson() {
  1321. final map = Map<String, dynamic>();
  1322. if(createTime != null)
  1323. map['CreateTime'] = JsonRpcUtils.dateFormat(createTime!);
  1324. if(deptName != null)
  1325. map['DeptName'] = deptName;
  1326. if(creatorName != null)
  1327. map['CreatorName'] = creatorName;
  1328. if(deviceName != null)
  1329. map['DeviceName'] = deviceName;
  1330. if(reportNum != null)
  1331. map['ReportNum'] = reportNum;
  1332. if(recordCode != null)
  1333. map['RecordCode'] = recordCode;
  1334. map['RecordStatus'] = recordStatus.index;
  1335. map['IsRead'] = isRead;
  1336. if(remedicalList != null)
  1337. map['RemedicalList'] = remedicalList;
  1338. map['DiagnosisStatus'] = diagnosisStatus.index;
  1339. if(diagnosisInfos != null)
  1340. map['DiagnosisInfos'] = diagnosisInfos;
  1341. return map;
  1342. }
  1343. }
  1344. class ClientPatientInfoDTO extends ClientPatientInfoBaseDTO{
  1345. String? creatorCode;
  1346. String? creatorName;
  1347. String? deviceCode;
  1348. List<UserBaseDTO>? assignmentUserList;
  1349. GetRecordsPageDTO? lastRecord;
  1350. ClientPatientInfoDTO({
  1351. this.creatorCode,
  1352. this.creatorName,
  1353. this.deviceCode,
  1354. this.assignmentUserList,
  1355. this.lastRecord,
  1356. String? patientCode,
  1357. bool isValid = false,
  1358. List<DataItemDTO>? patientData,
  1359. int unReadRecordCount = 0,
  1360. DateTime? createTime,
  1361. DateTime? updateTime,
  1362. }) : super(
  1363. patientCode: patientCode,
  1364. isValid: isValid,
  1365. patientData: patientData,
  1366. unReadRecordCount: unReadRecordCount,
  1367. createTime: createTime,
  1368. updateTime: updateTime,
  1369. );
  1370. factory ClientPatientInfoDTO.fromJson(Map<String, dynamic> map) {
  1371. return ClientPatientInfoDTO(
  1372. creatorCode: map['CreatorCode'],
  1373. creatorName: map['CreatorName'],
  1374. deviceCode: map['DeviceCode'],
  1375. assignmentUserList: map['AssignmentUserList'] != null ? (map['AssignmentUserList'] as List).map((e)=>UserBaseDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  1376. lastRecord: map['LastRecord'] != null ? GetRecordsPageDTO.fromJson(map['LastRecord']) : null,
  1377. patientCode: map['PatientCode'],
  1378. isValid: map['IsValid'],
  1379. patientData: map['PatientData'] != null ? (map['PatientData'] as List).map((e)=>DataItemDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  1380. unReadRecordCount: map['UnReadRecordCount'],
  1381. createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
  1382. updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
  1383. );
  1384. }
  1385. Map<String, dynamic> toJson() {
  1386. final map = super.toJson();
  1387. if(creatorCode != null)
  1388. map['CreatorCode'] = creatorCode;
  1389. if(creatorName != null)
  1390. map['CreatorName'] = creatorName;
  1391. if(deviceCode != null)
  1392. map['DeviceCode'] = deviceCode;
  1393. if(assignmentUserList != null)
  1394. map['AssignmentUserList'] = assignmentUserList;
  1395. if(lastRecord != null)
  1396. map['LastRecord'] = lastRecord;
  1397. return map;
  1398. }
  1399. }
  1400. class FindPatientByCodeRequest extends TokenRequest{
  1401. String? code;
  1402. FindPatientByCodeRequest({
  1403. this.code,
  1404. String? token,
  1405. }) : super(
  1406. token: token,
  1407. );
  1408. factory FindPatientByCodeRequest.fromJson(Map<String, dynamic> map) {
  1409. return FindPatientByCodeRequest(
  1410. code: map['Code'],
  1411. token: map['Token'],
  1412. );
  1413. }
  1414. Map<String, dynamic> toJson() {
  1415. final map = super.toJson();
  1416. if(code != null)
  1417. map['Code'] = code;
  1418. return map;
  1419. }
  1420. }
  1421. class FindValidPatientsByNameRequest extends TokenRequest{
  1422. String? name;
  1423. FindValidPatientsByNameRequest({
  1424. this.name,
  1425. String? token,
  1426. }) : super(
  1427. token: token,
  1428. );
  1429. factory FindValidPatientsByNameRequest.fromJson(Map<String, dynamic> map) {
  1430. return FindValidPatientsByNameRequest(
  1431. name: map['Name'],
  1432. token: map['Token'],
  1433. );
  1434. }
  1435. Map<String, dynamic> toJson() {
  1436. final map = super.toJson();
  1437. if(name != null)
  1438. map['Name'] = name;
  1439. return map;
  1440. }
  1441. }
  1442. class SetValidPatientRequest extends TokenRequest{
  1443. String? newPatientCode;
  1444. String? oldPatientCode;
  1445. bool isFinishExam;
  1446. SetValidPatientRequest({
  1447. this.newPatientCode,
  1448. this.oldPatientCode,
  1449. this.isFinishExam = false,
  1450. String? token,
  1451. }) : super(
  1452. token: token,
  1453. );
  1454. factory SetValidPatientRequest.fromJson(Map<String, dynamic> map) {
  1455. return SetValidPatientRequest(
  1456. newPatientCode: map['NewPatientCode'],
  1457. oldPatientCode: map['OldPatientCode'],
  1458. isFinishExam: map['IsFinishExam'],
  1459. token: map['Token'],
  1460. );
  1461. }
  1462. Map<String, dynamic> toJson() {
  1463. final map = super.toJson();
  1464. if(newPatientCode != null)
  1465. map['NewPatientCode'] = newPatientCode;
  1466. if(oldPatientCode != null)
  1467. map['OldPatientCode'] = oldPatientCode;
  1468. map['IsFinishExam'] = isFinishExam;
  1469. return map;
  1470. }
  1471. }
  1472. class RemovePatientsRequest extends TokenRequest{
  1473. List<String>? patientCodes;
  1474. RemovePatientsRequest({
  1475. this.patientCodes,
  1476. String? token,
  1477. }) : super(
  1478. token: token,
  1479. );
  1480. factory RemovePatientsRequest.fromJson(Map<String, dynamic> map) {
  1481. return RemovePatientsRequest(
  1482. patientCodes: map['PatientCodes'] != null ? map['PatientCodes'].cast<String>().toList() : null,
  1483. token: map['Token'],
  1484. );
  1485. }
  1486. Map<String, dynamic> toJson() {
  1487. final map = super.toJson();
  1488. if(patientCodes != null)
  1489. map['PatientCodes'] = patientCodes;
  1490. return map;
  1491. }
  1492. }