Commit d9f3d4a688e9d81203b876bb29ac75f4afd49a4f

Authored by yangfei
1 parent 4e5d6173c0

听力诊断模块

Showing 8 changed files with 157 additions and 92 deletions

platform-biz-service/src/main/java/com/lyms/platform/permission/model/BabyPatientExtendEar.java View file @ d9f3d4a
... ... @@ -22,7 +22,9 @@
22 22 private String lastUpdateUserId;
23 23  
24 24 private String lastUpdateHospitalId;
25   -
  25 +
  26 + private String nation;
  27 +
26 28 /**
27 29 * 状态 1, "有效" 0, "无效"
28 30 */
... ... @@ -49,6 +51,14 @@
49 51 private String createUserId;
50 52 //条码
51 53 private String barCode;
  54 +
  55 + public String getNation() {
  56 + return nation;
  57 + }
  58 +
  59 + public void setNation(String nation) {
  60 + this.nation = nation;
  61 + }
52 62  
53 63 public String getPersonId() {
54 64 return personId;
platform-biz-service/src/main/java/com/lyms/platform/permission/model/BabyPatientExtendEarQuery.java View file @ d9f3d4a
... ... @@ -25,7 +25,7 @@
25 25 private String lastUpdateUserId;
26 26  
27 27 private String lastUpdateHospitalId;
28   -
  28 + private String nation;
29 29 /**
30 30 * 状态 1=正常 -1=禁用
31 31 */
... ... @@ -53,6 +53,14 @@
53 53 private String createUserId;
54 54 //条码
55 55 private String barCode;
  56 +
  57 + public String getNation() {
  58 + return nation;
  59 + }
  60 +
  61 + public void setNation(String nation) {
  62 + this.nation = nation;
  63 + }
56 64  
57 65 public String[] getBabyPatientIds() {
58 66 return babyPatientIds;
platform-biz-service/src/main/resources/mainOrm/master/BabyPatientExtendEar.xml View file @ d9f3d4a
... ... @@ -17,12 +17,13 @@
17 17 <result column="admiss_no" property="admissNo" jdbcType="VARCHAR"/>
18 18 <result column="discharge_diagnosis" property="dischargeDiagnosis" jdbcType="VARCHAR"/>
19 19 <result column="bar_code" property="barCode" jdbcType="VARCHAR"/>
  20 + <result column="nation" property="nation" jdbcType="VARCHAR"/>
20 21 <result column="mhigh_risk_factor_id" property="mHighRiskFactorId" jdbcType="VARCHAR"/>
21 22 </resultMap>
22 23  
23 24  
24 25 <insert id="addBabyPatientExtendEar" parameterType="com.lyms.platform.permission.model.BabyPatientExtendEar">
25   -insert into baby_patient_extend_ear (id,person_id,create_date,create_user_id,create_hospital_id,last_update_date,last_update_user_id,last_update_hospital_id,high_risk_cause,status,baby_patient_id,admiss_no,discharge_diagnosis,bar_code,mhigh_risk_factor_id) values (#{id},#{personId},#{createDate},#{createUserId},#{createHospitalId},#{lastUpdateDate},#{lastUpdateUserId},#{lastUpdateHospitalId},#{highRiskCause},#{status},#{babyPatientId},#{admissNo},#{dischargeDiagnosis},#{barCode},#{mHighRiskFactorId})
  26 +insert into baby_patient_extend_ear (id,person_id,create_date,create_user_id,create_hospital_id,last_update_date,last_update_user_id,last_update_hospital_id,high_risk_cause,status,baby_patient_id,admiss_no,discharge_diagnosis,bar_code,nation,mhigh_risk_factor_id) values (#{id},#{personId},#{createDate},#{createUserId},#{createHospitalId},#{lastUpdateDate},#{lastUpdateUserId},#{lastUpdateHospitalId},#{highRiskCause},#{status},#{babyPatientId},#{admissNo},#{dischargeDiagnosis},#{barCode},#{nation},#{mHighRiskFactorId})
26 27 </insert>
27 28  
28 29  
... ... @@ -68,6 +69,9 @@
68 69 <if test="barCode != null and barCode != ''">
69 70 bar_code = #{barCode,jdbcType=VARCHAR},
70 71 </if>
  72 + <if test="nation != null and nation != ''">
  73 + nation = #{nation,jdbcType=VARCHAR},
  74 + </if>
71 75 <if test="mHighRiskFactorId != null and mHighRiskFactorId != ''">
72 76 mhigh_risk_factor_id = #{mHighRiskFactorId,jdbcType=VARCHAR},
73 77 </if>
... ... @@ -82,7 +86,7 @@
82 86  
83 87  
84 88 <select id="getBabyPatientExtendEar" resultMap="BabyPatientExtendEarResultMap" parameterType="java.lang.String">
85   -select id,person_id,create_date,create_user_id,create_hospital_id,last_update_date,last_update_user_id,last_update_hospital_id,high_risk_cause,status,baby_patient_id,admiss_no,discharge_diagnosis,bar_code,mhigh_risk_factor_id
  89 +select id,person_id,create_date,create_user_id,create_hospital_id,last_update_date,last_update_user_id,last_update_hospital_id,high_risk_cause,status,baby_patient_id,admiss_no,discharge_diagnosis,bar_code,nation,mhigh_risk_factor_id
86 90 from baby_patient_extend_ear where id = #{id,jdbcType=VARCHAR}
87 91 </select>
88 92  
... ... @@ -156,6 +160,9 @@
156 160 <if test="barCode != null and barCode != ''">
157 161 and bar_code = #{barCode,jdbcType=VARCHAR}
158 162 </if>
  163 + <if test="nation != null and nation != ''">
  164 + and nation = #{nation,jdbcType=VARCHAR}
  165 + </if>
159 166 <if test="mHighRiskFactorId != null and mHighRiskFactorId != ''">
160 167 and mhigh_risk_factor_id = #{mHighRiskFactorId,jdbcType=VARCHAR}
161 168 </if>
... ... @@ -166,7 +173,7 @@
166 173 <select id="queryBabyPatientExtendEar" resultMap="BabyPatientExtendEarResultMap"
167 174 parameterType="com.lyms.platform.permission.model.BabyPatientExtendEarQuery">
168 175 select
169   - id,person_id,create_date,create_user_id,create_hospital_id,last_update_date,last_update_user_id,last_update_hospital_id,high_risk_cause,status,baby_patient_id,admiss_no,discharge_diagnosis,bar_code,mhigh_risk_factor_id
  176 + id,person_id,create_date,create_user_id,create_hospital_id,last_update_date,last_update_user_id,last_update_hospital_id,high_risk_cause,status,baby_patient_id,admiss_no,discharge_diagnosis,bar_code,nation,mhigh_risk_factor_id
170 177 from baby_patient_extend_ear
171 178 <include refid="BabyPatientExtendEarCondition"/>
172 179 <include refid="orderAndLimit"/>
platform-common/src/main/java/com/lyms/platform/common/enums/HdEnums.java View file @ d9f3d4a
... ... @@ -156,7 +156,7 @@
156 156 public enum SourceEnums {
157 157 BY(1, "本院"),
158 158 ALL(3, "全部"),
159   - WY(2, "*外院");
  159 + WY(2, "外院");
160 160  
161 161 private int id;
162 162 private String name;
platform-common/src/main/java/com/lyms/platform/common/enums/ServiceStatusEnums.java View file @ d9f3d4a
... ... @@ -56,6 +56,22 @@
56 56 return list;
57 57 }
58 58  
  59 + public static List<Map> getServiceStatus()
  60 + {
  61 + List<Map> list = new ArrayList<>();
  62 + for(ServiceStatusEnums s : ServiceStatusEnums.values()) {
  63 + if (s.getId() < 100)
  64 + {
  65 + Map map = new HashMap<>();
  66 + map.put("id", s.getId());
  67 + map.put("name", s.getName());
  68 + map.put("pid", s.getPid());
  69 + list.add(map);
  70 + }
  71 + }
  72 + return list;
  73 + }
  74 +
59 75  
60 76 public static List<Map<String,String>> getServiceStatusByPid(int pid)
61 77 {
platform-common/src/main/java/com/lyms/platform/common/enums/ServiceTypeEnums.java View file @ d9f3d4a
... ... @@ -41,6 +41,17 @@
41 41 return null;
42 42 }
43 43  
  44 + public static List<Map> getServiceType() {
  45 + List<Map> list = new ArrayList<>();
  46 + for (ServiceTypeEnums e : ServiceTypeEnums.values()) {
  47 + Map rootMap = new HashMap();
  48 + rootMap.put("id", e.getId());
  49 + rootMap.put("name", e.getName());
  50 +
  51 + list.add(rootMap);
  52 + }
  53 + return list;
  54 + }
44 55  
45 56 public static List<Map<String,String>> getServiceTypeList()
46 57 {
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/HearingDiagnoseController.java View file @ d9f3d4a
... ... @@ -16,7 +16,6 @@
16 16 import com.lyms.platform.operate.web.facade.BabyEarFacade;
17 17 import com.lyms.platform.operate.web.request.HearingDiagnoseRequest;
18 18 import com.lyms.platform.operate.web.result.HearingDiagnoseListResult;
19   -import com.lyms.platform.operate.web.utils.MyComparator;
20 19 import com.lyms.platform.permission.model.*;
21 20 import com.lyms.platform.permission.service.*;
22 21 import com.lyms.platform.pojo.BabyModel;
... ... @@ -329,8 +328,6 @@
329 328 outOrgids.add(hospitalId);
330 329 } else {//4.全部医院/默认全部医院
331 330 //当前登录人区域医院Id
332   - List hospiIds = babyEarFacade.getOrgHospitalIds(hospitalId);
333   - outOrgids.addAll(hospiIds);
334 331 //当前医院
335 332 outOrgids.add(hospitalId);
336 333 //转诊过来的医院id
337 334  
338 335  
339 336  
340 337  
... ... @@ -470,17 +467,20 @@
470 467  
471 468 query.setSort("diagnose_time");
472 469  
  470 + //已经诊断的数据
473 471 List<BabyPatientExtendEarHearingDiagnose> hearingDiagnoseList = hearingDiagnoseService.getHdAndScreen(query);
474 472  
  473 + //待诊断
475 474 List<HearingDiagnoseListResult> waitConfiList = new ArrayList<>();
  475 + //已诊断
476 476 List<HearingDiagnoseListResult> confiList = new ArrayList<>();
  477 + //全部
477 478 List<HearingDiagnoseListResult> hdrList = new ArrayList<>();
478   - // for (int i = (hdReq.getPage() - 1) * hdReq.getLimit(); (i < babyIds.size() && i < hdReq.getLimit()); i++) {
479   - Collections.sort(hearingDiagnoseList);
480   - for (int i = 0; i < babyIds.size(); i++) {
481   - BabyPatientExtendEarHearingDiagnose hd = new BabyPatientExtendEarHearingDiagnose();
482   - hd.setBabyId(babyIds.get(i));
483   - int index1 = Collections.binarySearch(hearingDiagnoseList, hd, new MyComparator());
  479 +
  480 + //添加已经诊断的数据
  481 + for (BabyPatientExtendEarHearingDiagnose hd : hearingDiagnoseList) {
  482 + //删除总数据
  483 + babyIds.remove(hd.getBabyId());
484 484 HearingDiagnoseListResult hea = new HearingDiagnoseListResult();
485 485 BabyModel babyModel = babyService.getOneBabyById(hd.getBabyId());
486 486 if (babyModel != null) {
487 487  
488 488  
489 489  
490 490  
491 491  
492 492  
493 493  
494 494  
495 495  
496 496  
497 497  
... ... @@ -493,91 +493,83 @@
493 493 hea.setBirthday(com.lyms.platform.common.utils.StringUtils.emptyDeal(DateUtil.getyyyy_MM_dd(babyModel.getBirth())));
494 494 hea.setSex(com.lyms.platform.common.utils.StringUtils.emptyDeal(SexEnum.getTextById(babyModel.getSex())));
495 495 }
496   - if (index1 < 0) {
497   - //全部
498   - hdrList.add(hea);
499   - //待诊断
500   - waitConfiList.add(hea);
501   - continue;
  496 + hea.setIsconfirm(hd.getIsconfirm() == null ? "未确诊" : hd.getIsconfirm() == 0 ? "未确诊" : "已确诊");
  497 + hea.setId(hd.getId());
  498 + hea.setDiagnoseTime(DateUtil.getyyyy_MM_dd(hd.getDiagnoseTime()));
  499 + String docotorId = hd.getDiagnDoctorId();
  500 + Users users = usersService.getUsers(Integer.parseInt(docotorId == null ? "0" : docotorId));
  501 + if (users != null) {
  502 + hea.setDoctorName(users.getName() == null ? "-" : users.getName());
502 503 }
503   - if (index1 >= 0) {
504   - hd = hearingDiagnoseList.get(index1);
505   - hea.setIsconfirm(hd.getIsconfirm() == null ? "未确诊" : hd.getIsconfirm() == 0 ? "未确诊" : "已确诊");
506   - hea.setId(hd.getId());
507   - hea.setDiagnoseTime(DateUtil.getyyyy_MM_dd(hd.getDiagnoseTime()));
508   - String docotorId = hd.getDiagnDoctorId();
509   - Users users = usersService.getUsers(Integer.parseInt(docotorId == null ? "0" : docotorId));
510   - if (users != null) {
511   - hea.setDoctorName(users.getName() == null ? "-" : users.getName());
512   - }
513   - hea.setHdTime(com.lyms.platform.common.utils.StringUtils.emptyDeal(DateUtil.getyyyy_MM_dd(hd.getDiagnoseTime())));
514   - if (hd.getHighFactor() != null) {
515   - String hf[] = hd.getHighFactor().split(",");
516   - // List<Map<Integer, String>> highRiskEnums = new ArrayList<>();
517   - StringBuffer hrSb = new StringBuffer();
518   - for (int b = 0; b < hf.length; b++) {
519   - if (StringUtils.isNotEmpty(hf[b])) {
520   - Map<Integer, String> map = new HashMap<>();
521   - String title = HighRiskEnum.getTitle(Integer.parseInt(hf[b]));
522   - map.put(Integer.parseInt(hf[b]), title);
523   - // highRiskEnums.add(map);
524   - hrSb.append(title + ",");
525   - }
  504 + hea.setHdTime(com.lyms.platform.common.utils.StringUtils.emptyDeal(DateUtil.getyyyy_MM_dd(hd.getDiagnoseTime())));
  505 + //听力高危因数
  506 + if (hd.getHighFactor() != null) {
  507 + String hf[] = hd.getHighFactor().split(",");
  508 + StringBuffer hrSb = new StringBuffer();
  509 + for (int b = 0; b < hf.length; b++) {
  510 + if (StringUtils.isNotEmpty(hf[b])) {
  511 + Map<Integer, String> map = new HashMap<>();
  512 + String title = HighRiskEnum.getTitle(Integer.parseInt(hf[b]));
  513 + map.put(Integer.parseInt(hf[b]), title);
  514 + hrSb.append(title + ",");
526 515 }
527   - // hea.setHighRiskEnums(highRiskEnums);
528   - hea.setHighRiskEnums(hrSb.toString());
529 516 }
530   - //确诊结果
531   - if (hd.getConfirmResult() != null) {
532   - String cr[] = hd.getConfirmResult().split(",");
533   - StringBuffer hdSb = new StringBuffer();
534   - for (int b = 0; b < cr.length; b++) {
535   - if (StringUtils.isNotEmpty(cr[b])) {
536   - Map<Integer, String> map = new HashMap<>();
537   - String title = ConfirmedEnums.getTitle(Integer.parseInt(cr[b]));
538   - map.put(Integer.parseInt(cr[b]), title);
539   - hdSb.append(title + ",");
540   - }
  517 + hea.setHighRiskEnums(hrSb.toString());
  518 + }
  519 + //确诊结果
  520 + if (hd.getConfirmResult() != null) {
  521 + String cr[] = hd.getConfirmResult().split(",");
  522 + StringBuffer hdSb = new StringBuffer();
  523 + for (int b = 0; b < cr.length; b++) {
  524 + if (StringUtils.isNotEmpty(cr[b])) {
  525 + Map<Integer, String> map = new HashMap<>();
  526 + String title = ConfirmedEnums.getTitle(Integer.parseInt(cr[b]));
  527 + map.put(Integer.parseInt(cr[b]), title);
  528 + hdSb.append(title + ",");
541 529 }
542   - // hea.setDiagnResult(hdEnums);
543   - hea.setConfirmResult(hdSb.toString());
544 530 }
  531 + hea.setConfirmResult(hdSb.toString());
  532 + }
545 533  
546   - //诊断结果
547   - if (hd.getDiagnResult() != null) {
548   - String cr[] = hd.getDiagnResult().split(",");
549   - StringBuffer hdSb = new StringBuffer();
550   - for (int b = 0; b < cr.length; b++) {
551   - if (StringUtils.isNotEmpty(cr[b])) {
552   - Map<Integer, String> map = new HashMap<>();
553   - String title = HearingDiagnosisEnums.getTitle(Integer.parseInt(cr[b]));
554   - map.put(Integer.parseInt(cr[b]), title);
555   - hdSb.append(title + ",");
556   - }
  534 + //诊断结果
  535 + if (hd.getDiagnResult() != null) {
  536 + String cr[] = hd.getDiagnResult().split(",");
  537 + StringBuffer hdSb = new StringBuffer();
  538 + for (int b = 0; b < cr.length; b++) {
  539 + if (StringUtils.isNotEmpty(cr[b])) {
  540 + Map<Integer, String> map = new HashMap<>();
  541 + String title = HearingDiagnosisEnums.getTitle(Integer.parseInt(cr[b]));
  542 + map.put(Integer.parseInt(cr[b]), title);
  543 + hdSb.append(title + ",");
557 544 }
558   - hea.setDiagnResult(hdSb.toString());
559 545 }
  546 + hea.setDiagnResult(hdSb.toString());
560 547 }
  548 + //已诊断
  549 + confiList.add(hea);
  550 + //全部
  551 + hdrList.add(hea);
  552 + }
561 553  
562 554  
563   - //诊断结果,肯定是有诊断记录
564   - if (hdReq.getConfirmResult() != null || hdReq.getConfirmDegree() != null) {
565   - // 1、已诊断、2、待诊断、0、全部
566   - if (StringUtils.isNotEmpty(hea.getId())) {//1、已诊断
567   - confiList.add(hea);
568   - //全部
569   - hdrList.add(hea);
570   - }
571   - } else {
572   - // 1、已诊断、2、待诊断、0、全部
573   - if (StringUtils.isEmpty(hea.getId())) {
574   - waitConfiList.add(hea);
575   - } else if (StringUtils.isNotEmpty(hea.getId())) {//1、已诊断
576   - confiList.add(hea);
577   - }
578   - //全部
579   - hdrList.add(hea);
  555 + Collections.sort(hearingDiagnoseList);
  556 + for (int i = 0; i < babyIds.size(); i++) {
  557 + HearingDiagnoseListResult hea = new HearingDiagnoseListResult();
  558 + BabyModel babyModel = babyService.getOneBabyById(babyIds.get(i));
  559 + if (babyModel != null) {
  560 + hea.setBabyName(babyModel.getName());
  561 + hea.setBabyId(babyIds.get(i));
  562 + hea.setMommyName(com.lyms.platform.common.utils.StringUtils.emptyDeal(babyModel.getMname()));
  563 + hea.setMommnyPhone(com.lyms.platform.common.utils.StringUtils.emptyDeal(babyModel.getMphone()));
  564 + hea.setMommnyEncryptPhone(com.lyms.platform.common.utils.StringUtils.encryPhone(babyModel.getMphone()));
  565 + hea.setMonthAge(DateUtil.getBabyMonthAge(babyModel.getBirth(), new Date()));
  566 + hea.setBirthday(com.lyms.platform.common.utils.StringUtils.emptyDeal(DateUtil.getyyyy_MM_dd(babyModel.getBirth())));
  567 + hea.setSex(com.lyms.platform.common.utils.StringUtils.emptyDeal(SexEnum.getTextById(babyModel.getSex())));
580 568 }
  569 + //全部
  570 + hdrList.add(hea);
  571 + //待诊断
  572 + waitConfiList.add(hea);
581 573 }
582 574  
583 575 BaseListResponse result = new BaseListResponse();
... ... @@ -603,7 +595,25 @@
603 595 pageInfo.setCount(hdrList.size());
604 596 result.setData(hdrList);
605 597 }
606   - } else {
  598 + } else if (hdReq.getIsconfirm() != null) {
  599 + for (int i = (hdReq.getPage() - 1) * hdReq.getLimit(); (i < confiList.size() && i < hdReq.getLimit()); i++) {
  600 + resList.add(confiList.get(i));
  601 + }
  602 + result.setData(confiList);
  603 + pageInfo.setCount(confiList.size());
  604 + } else if(hdReq.getConfirmDegree()!=null){
  605 + for (int i = (hdReq.getPage() - 1) * hdReq.getLimit(); (i < confiList.size() && i < hdReq.getLimit()); i++) {
  606 + resList.add(confiList.get(i));
  607 + }
  608 + result.setData(confiList);
  609 + pageInfo.setCount(confiList.size());
  610 + }else if(StringUtils.isNotEmpty(hdReq.getDiagnDoctorId())){
  611 + for (int i = (hdReq.getPage() - 1) * hdReq.getLimit(); (i < confiList.size() && i < hdReq.getLimit()); i++) {
  612 + resList.add(confiList.get(i));
  613 + }
  614 + result.setData(confiList);
  615 + pageInfo.setCount(confiList.size());
  616 + }else {
607 617 for (int i = (hdReq.getPage() - 1) * hdReq.getLimit(); (i < hdrList.size() && i < hdReq.getLimit()); i++) {
608 618 resList.add(hdrList.get(i));
609 619 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyEarFacade.java View file @ d9f3d4a
... ... @@ -370,6 +370,7 @@
370 370  
371 371 //数据转换
372 372 BabyPatientExtendEar babyPatientExtendEar = new BabyPatientExtendEar();
  373 + babyPatientExtendEar.setNation(babyEarBase.getNation());
373 374 babyPatientExtendEar.setmHighRiskFactorId(babyEarBase.getmHighRiskFactorId());
374 375 babyPatientExtendEar.setAdmissNo(babyEarBase.getAdmissNo());
375 376 babyPatientExtendEar.setDischargeDiagnosis(babyEarBase.getDischargeDiagnosis());
... ... @@ -502,6 +503,7 @@
502 503 if (CollectionUtils.isNotEmpty(babyPatientExtendEars)) {
503 504 BabyPatientExtendEar babyPatientExtendEar = babyPatientExtendEars.get(0);
504 505 babyEarBase.setId(babyPatientExtendEar.getId());
  506 + babyEarBase.setNation(babyPatientExtendEar.getNation());
505 507 babyEarBase.setAdmissNo(babyPatientExtendEar.getAdmissNo());
506 508 babyEarBase.setBarCode(babyPatientExtendEar.getBarCode());
507 509 babyEarBase.setCreateUserId(babyPatientExtendEar.getCreateUserId());
... ... @@ -552,7 +554,6 @@
552 554 babyPatientExtendEarMother.setBadLifeHistoryType("{}");
553 555 babyPatientExtendEarMother.setMedicalHistoryType("{}");
554 556 babyPatientExtendEarMother.setBnormalPregnancyHistoryType("{}");
555   - babyPatientExtendEarMother.setBadLifeHistoryType("{}");
556 557 babyEarResult.setPatientExtendEarMother(babyPatientExtendEarMother);
557 558 }
558 559  
... ... @@ -610,7 +611,7 @@
610 611 babyEarBaseView.setId(babyPatientExtendEar.getId());
611 612 babyEarBaseView.setDischargeDiagnosis(babyPatientExtendEar.getDischargeDiagnosis());
612 613 babyEarBaseView.setBarCode(babyPatientExtendEar.getBarCode());
613   - babyEarBaseView.setBarCode(babyPatientExtendEar.getBarCode());
  614 + babyEarBaseView.setNation(getBasicConfig(babyPatientExtendEar.getNation()));
614 615 babyEarBaseView.setRemark(babyModel.getMremark());
615 616 if (babyModel.getServiceType() == ServiceTypeEnums.STANDARD_SERVICE.getId()) {
616 617 babyEarBaseView.setServiceStatus(ServiceStatusEnums.STANDARD_OPEN.getName());
... ... @@ -990,7 +991,9 @@
990 991 historyStr.append("吸毒、");
991 992 }
992 993 }
993   - historyStr.append(")");
  994 + if(StringUtils.isNotEmpty(historyStr.toString())){
  995 + historyStr.append(")");
  996 + }
994 997 babyEarMotherView.setBadLifeHistoryType(historyStr.toString());
995 998 }
996 999