patient.m.dart 16 KB

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