patient.m.dart 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634
  1. import 'authentication.m.dart';
  2. import 'connect.m.dart';
  3. import 'package:fis_jsonrpc/utils.dart';
  4. import 'package:fis_common/json_convert.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. PatientInfoBaseDTO({
  98. this.patientCode,
  99. this.name,
  100. this.phone,
  101. this.identityCard,
  102. this.insuranceCode,
  103. this.age,
  104. this.gender = 0,
  105. this.isValid = false,
  106. this.organizationCode,
  107. this.assignmentUserCodes,
  108. this.patientData,
  109. this.unReadRecordCount = 0,
  110. DateTime? createTime,
  111. DateTime? updateTime,
  112. }) : super(
  113. createTime: createTime,
  114. updateTime: updateTime,
  115. );
  116. factory PatientInfoBaseDTO.fromJson(Map<String, dynamic> map) {
  117. return PatientInfoBaseDTO(
  118. patientCode: map['PatientCode'],
  119. name: map['Name'],
  120. phone: map['Phone'],
  121. identityCard: map['IdentityCard'],
  122. insuranceCode: map['InsuranceCode'],
  123. age: map['Age'],
  124. gender: map['Gender'],
  125. isValid: map['IsValid'],
  126. organizationCode: map['OrganizationCode'],
  127. assignmentUserCodes: map['AssignmentUserCodes'] != null ? map['AssignmentUserCodes'].cast<String>().toList() : null,
  128. patientData: map['PatientData'] != null ? (map['PatientData'] as List).map((e)=>DataItemDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  129. unReadRecordCount: map['UnReadRecordCount'],
  130. createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
  131. updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
  132. );
  133. }
  134. Map<String, dynamic> toJson() {
  135. final map = super.toJson();
  136. if(patientCode != null)
  137. map['PatientCode'] = patientCode;
  138. if(name != null)
  139. map['Name'] = name;
  140. if(phone != null)
  141. map['Phone'] = phone;
  142. if(identityCard != null)
  143. map['IdentityCard'] = identityCard;
  144. if(insuranceCode != null)
  145. map['InsuranceCode'] = insuranceCode;
  146. if(age != null)
  147. map['Age'] = age;
  148. map['Gender'] = gender;
  149. map['IsValid'] = isValid;
  150. if(organizationCode != null)
  151. map['OrganizationCode'] = organizationCode;
  152. if(assignmentUserCodes != null)
  153. map['AssignmentUserCodes'] = assignmentUserCodes;
  154. if(patientData != null)
  155. map['PatientData'] = patientData;
  156. map['UnReadRecordCount'] = unReadRecordCount;
  157. return map;
  158. }
  159. }
  160. class PatientInfoDTO extends PatientInfoBaseDTO{
  161. String? creatorCode;
  162. String? deviceCode;
  163. PatientInfoDTO({
  164. this.creatorCode,
  165. this.deviceCode,
  166. String? patientCode,
  167. String? name,
  168. String? phone,
  169. String? identityCard,
  170. String? insuranceCode,
  171. String? age,
  172. int gender = 0,
  173. bool isValid = false,
  174. String? organizationCode,
  175. List<String>? assignmentUserCodes,
  176. List<DataItemDTO>? patientData,
  177. int unReadRecordCount = 0,
  178. DateTime? createTime,
  179. DateTime? updateTime,
  180. }) : super(
  181. patientCode: patientCode,
  182. name: name,
  183. phone: phone,
  184. identityCard: identityCard,
  185. insuranceCode: insuranceCode,
  186. age: age,
  187. gender: gender,
  188. isValid: isValid,
  189. organizationCode: organizationCode,
  190. assignmentUserCodes: assignmentUserCodes,
  191. patientData: patientData,
  192. unReadRecordCount: unReadRecordCount,
  193. createTime: createTime,
  194. updateTime: updateTime,
  195. );
  196. factory PatientInfoDTO.fromJson(Map<String, dynamic> map) {
  197. return PatientInfoDTO(
  198. creatorCode: map['CreatorCode'],
  199. deviceCode: map['DeviceCode'],
  200. patientCode: map['PatientCode'],
  201. name: map['Name'],
  202. phone: map['Phone'],
  203. identityCard: map['IdentityCard'],
  204. insuranceCode: map['InsuranceCode'],
  205. age: map['Age'],
  206. gender: map['Gender'],
  207. isValid: map['IsValid'],
  208. organizationCode: map['OrganizationCode'],
  209. assignmentUserCodes: map['AssignmentUserCodes'] != null ? map['AssignmentUserCodes'].cast<String>().toList() : null,
  210. patientData: map['PatientData'] != null ? (map['PatientData'] as List).map((e)=>DataItemDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  211. unReadRecordCount: map['UnReadRecordCount'],
  212. createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
  213. updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
  214. );
  215. }
  216. Map<String, dynamic> toJson() {
  217. final map = super.toJson();
  218. if(creatorCode != null)
  219. map['CreatorCode'] = creatorCode;
  220. if(deviceCode != null)
  221. map['DeviceCode'] = deviceCode;
  222. return map;
  223. }
  224. }
  225. class CreatePatientsRequest extends TokenRequest{
  226. List<PatientInfoDTO>? patients;
  227. CreatePatientsRequest({
  228. this.patients,
  229. String? token,
  230. }) : super(
  231. token: token,
  232. );
  233. factory CreatePatientsRequest.fromJson(Map<String, dynamic> map) {
  234. return CreatePatientsRequest(
  235. patients: map['Patients'] != null ? (map['Patients'] as List).map((e)=>PatientInfoDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  236. token: map['Token'],
  237. );
  238. }
  239. Map<String, dynamic> toJson() {
  240. final map = super.toJson();
  241. if(patients != null)
  242. map['Patients'] = patients;
  243. return map;
  244. }
  245. }
  246. class ClientPatientInfoBaseDTO extends BaseDTO{
  247. String? patientCode;
  248. bool isValid;
  249. List<DataItemDTO>? patientData;
  250. int unReadRecordCount;
  251. ClientPatientInfoBaseDTO({
  252. this.patientCode,
  253. this.isValid = false,
  254. this.patientData,
  255. this.unReadRecordCount = 0,
  256. DateTime? createTime,
  257. DateTime? updateTime,
  258. }) : super(
  259. createTime: createTime,
  260. updateTime: updateTime,
  261. );
  262. factory ClientPatientInfoBaseDTO.fromJson(Map<String, dynamic> map) {
  263. return ClientPatientInfoBaseDTO(
  264. patientCode: map['PatientCode'],
  265. isValid: map['IsValid'],
  266. patientData: map['PatientData'] != null ? (map['PatientData'] as List).map((e)=>DataItemDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  267. unReadRecordCount: map['UnReadRecordCount'],
  268. createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
  269. updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
  270. );
  271. }
  272. Map<String, dynamic> toJson() {
  273. final map = super.toJson();
  274. if(patientCode != null)
  275. map['PatientCode'] = patientCode;
  276. map['IsValid'] = isValid;
  277. if(patientData != null)
  278. map['PatientData'] = patientData;
  279. map['UnReadRecordCount'] = unReadRecordCount;
  280. return map;
  281. }
  282. }
  283. class PageResult<T> {
  284. int pageIndex;
  285. int pageSize;
  286. int totalCount;
  287. List<T>? pageData;
  288. PageResult({
  289. this.pageIndex = 0,
  290. this.pageSize = 0,
  291. this.totalCount = 0,
  292. this.pageData,
  293. });
  294. factory PageResult.fromJson(Map<String, dynamic> map) {
  295. List<T> pageDataList = [];
  296. if (map['PageData'] != null) {
  297. pageDataList.addAll(
  298. (map['PageData'] as List).map((e) => FJsonConvert.fromJson<T>(e)!));
  299. }
  300. return PageResult(
  301. pageIndex: map['PageIndex'],
  302. pageSize: map['PageSize'],
  303. totalCount: map['TotalCount'],
  304. pageData: pageDataList,
  305. );
  306. }
  307. Map<String, dynamic> toJson() {
  308. final map = Map<String, dynamic>();
  309. map['PageIndex'] = pageIndex;
  310. map['PageSize'] = pageSize;
  311. map['TotalCount'] = totalCount;
  312. if(pageData != null)
  313. map['PageData'] = pageData;
  314. return map;
  315. }
  316. }
  317. class PageRequest extends TokenRequest{
  318. int pageIndex;
  319. int pageSize;
  320. PageRequest({
  321. this.pageIndex = 0,
  322. this.pageSize = 0,
  323. String? token,
  324. }) : super(
  325. token: token,
  326. );
  327. factory PageRequest.fromJson(Map<String, dynamic> map) {
  328. return PageRequest(
  329. pageIndex: map['PageIndex'],
  330. pageSize: map['PageSize'],
  331. token: map['Token'],
  332. );
  333. }
  334. Map<String, dynamic> toJson() {
  335. final map = super.toJson();
  336. map['PageIndex'] = pageIndex;
  337. map['PageSize'] = pageSize;
  338. return map;
  339. }
  340. }
  341. enum PatientValidStatusEnum {
  342. All,
  343. CheckOut,
  344. CheckIn,
  345. }
  346. class FindPatientsPageRequest extends PageRequest{
  347. String? keyWord;
  348. DateTime? startTime;
  349. DateTime? endTime;
  350. PatientValidStatusEnum isValid;
  351. FindPatientsPageRequest({
  352. this.keyWord,
  353. this.startTime,
  354. this.endTime,
  355. this.isValid = PatientValidStatusEnum.All,
  356. int pageIndex = 0,
  357. int pageSize = 0,
  358. String? token,
  359. }) : super(
  360. pageIndex: pageIndex,
  361. pageSize: pageSize,
  362. token: token,
  363. );
  364. factory FindPatientsPageRequest.fromJson(Map<String, dynamic> map) {
  365. return FindPatientsPageRequest(
  366. keyWord: map['KeyWord'],
  367. startTime: map['StartTime'] != null ? DateTime.parse(map['StartTime']) : null,
  368. endTime: map['EndTime'] != null ? DateTime.parse(map['EndTime']) : null,
  369. isValid: PatientValidStatusEnum.values.firstWhere((e) => e.index == map['IsValid']),
  370. pageIndex: map['PageIndex'],
  371. pageSize: map['PageSize'],
  372. token: map['Token'],
  373. );
  374. }
  375. Map<String, dynamic> toJson() {
  376. final map = super.toJson();
  377. if(keyWord != null)
  378. map['KeyWord'] = keyWord;
  379. if(startTime != null)
  380. map['StartTime'] = JsonRpcUtils.dateFormat(startTime!);
  381. if(endTime != null)
  382. map['EndTime'] = JsonRpcUtils.dateFormat(endTime!);
  383. map['IsValid'] = isValid.index;
  384. return map;
  385. }
  386. }
  387. class UserBaseDTO extends BaseDTO{
  388. String? userCode;
  389. String? userName;
  390. String? headImageUrl;
  391. UserBaseDTO({
  392. this.userCode,
  393. this.userName,
  394. this.headImageUrl,
  395. DateTime? createTime,
  396. DateTime? updateTime,
  397. }) : super(
  398. createTime: createTime,
  399. updateTime: updateTime,
  400. );
  401. factory UserBaseDTO.fromJson(Map<String, dynamic> map) {
  402. return UserBaseDTO(
  403. userCode: map['UserCode'],
  404. userName: map['UserName'],
  405. headImageUrl: map['HeadImageUrl'],
  406. createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
  407. updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
  408. );
  409. }
  410. Map<String, dynamic> toJson() {
  411. final map = super.toJson();
  412. if(userCode != null)
  413. map['UserCode'] = userCode;
  414. if(userName != null)
  415. map['UserName'] = userName;
  416. if(headImageUrl != null)
  417. map['HeadImageUrl'] = headImageUrl;
  418. return map;
  419. }
  420. }
  421. class ClientPatientInfoDTO extends ClientPatientInfoBaseDTO{
  422. String? creatorCode;
  423. String? creatorName;
  424. String? deviceCode;
  425. List<UserBaseDTO>? assignmentUserList;
  426. ClientPatientInfoDTO({
  427. this.creatorCode,
  428. this.creatorName,
  429. this.deviceCode,
  430. this.assignmentUserList,
  431. String? patientCode,
  432. bool isValid = false,
  433. List<DataItemDTO>? patientData,
  434. int unReadRecordCount = 0,
  435. DateTime? createTime,
  436. DateTime? updateTime,
  437. }) : super(
  438. patientCode: patientCode,
  439. isValid: isValid,
  440. patientData: patientData,
  441. unReadRecordCount: unReadRecordCount,
  442. createTime: createTime,
  443. updateTime: updateTime,
  444. );
  445. factory ClientPatientInfoDTO.fromJson(Map<String, dynamic> map) {
  446. return ClientPatientInfoDTO(
  447. creatorCode: map['CreatorCode'],
  448. creatorName: map['CreatorName'],
  449. deviceCode: map['DeviceCode'],
  450. assignmentUserList: map['AssignmentUserList'] != null ? (map['AssignmentUserList'] as List).map((e)=>UserBaseDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  451. patientCode: map['PatientCode'],
  452. isValid: map['IsValid'],
  453. patientData: map['PatientData'] != null ? (map['PatientData'] as List).map((e)=>DataItemDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
  454. unReadRecordCount: map['UnReadRecordCount'],
  455. createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
  456. updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
  457. );
  458. }
  459. Map<String, dynamic> toJson() {
  460. final map = super.toJson();
  461. if(creatorCode != null)
  462. map['CreatorCode'] = creatorCode;
  463. if(creatorName != null)
  464. map['CreatorName'] = creatorName;
  465. if(deviceCode != null)
  466. map['DeviceCode'] = deviceCode;
  467. if(assignmentUserList != null)
  468. map['AssignmentUserList'] = assignmentUserList;
  469. return map;
  470. }
  471. }
  472. class FindPatientByCodeRequest extends TokenRequest{
  473. String? code;
  474. FindPatientByCodeRequest({
  475. this.code,
  476. String? token,
  477. }) : super(
  478. token: token,
  479. );
  480. factory FindPatientByCodeRequest.fromJson(Map<String, dynamic> map) {
  481. return FindPatientByCodeRequest(
  482. code: map['Code'],
  483. token: map['Token'],
  484. );
  485. }
  486. Map<String, dynamic> toJson() {
  487. final map = super.toJson();
  488. if(code != null)
  489. map['Code'] = code;
  490. return map;
  491. }
  492. }
  493. class AssignPatientToUsersRequest extends TokenRequest{
  494. String? patientCode;
  495. List<String>? userCodes;
  496. AssignPatientToUsersRequest({
  497. this.patientCode,
  498. this.userCodes,
  499. String? token,
  500. }) : super(
  501. token: token,
  502. );
  503. factory AssignPatientToUsersRequest.fromJson(Map<String, dynamic> map) {
  504. return AssignPatientToUsersRequest(
  505. patientCode: map['PatientCode'],
  506. userCodes: map['UserCodes'] != null ? map['UserCodes'].cast<String>().toList() : null,
  507. token: map['Token'],
  508. );
  509. }
  510. Map<String, dynamic> toJson() {
  511. final map = super.toJson();
  512. if(patientCode != null)
  513. map['PatientCode'] = patientCode;
  514. if(userCodes != null)
  515. map['UserCodes'] = userCodes;
  516. return map;
  517. }
  518. }
  519. class FindValidPatientsByNameRequest extends TokenRequest{
  520. String? name;
  521. FindValidPatientsByNameRequest({
  522. this.name,
  523. String? token,
  524. }) : super(
  525. token: token,
  526. );
  527. factory FindValidPatientsByNameRequest.fromJson(Map<String, dynamic> map) {
  528. return FindValidPatientsByNameRequest(
  529. name: map['Name'],
  530. token: map['Token'],
  531. );
  532. }
  533. Map<String, dynamic> toJson() {
  534. final map = super.toJson();
  535. if(name != null)
  536. map['Name'] = name;
  537. return map;
  538. }
  539. }
  540. class SetValidPatientRequest extends TokenRequest{
  541. String? newPatientCode;
  542. String? oldPatientCode;
  543. SetValidPatientRequest({
  544. this.newPatientCode,
  545. this.oldPatientCode,
  546. String? token,
  547. }) : super(
  548. token: token,
  549. );
  550. factory SetValidPatientRequest.fromJson(Map<String, dynamic> map) {
  551. return SetValidPatientRequest(
  552. newPatientCode: map['NewPatientCode'],
  553. oldPatientCode: map['OldPatientCode'],
  554. token: map['Token'],
  555. );
  556. }
  557. Map<String, dynamic> toJson() {
  558. final map = super.toJson();
  559. if(newPatientCode != null)
  560. map['NewPatientCode'] = newPatientCode;
  561. if(oldPatientCode != null)
  562. map['OldPatientCode'] = oldPatientCode;
  563. return map;
  564. }
  565. }