| 1 | IVMLERR2 ;ALB/RMO - IVM Transmission Error Processing - Protocols; 15-SEP-1997
 | 
|---|
| 2 |  ;;2.0;INCOME VERIFICATION MATCH;**9**; 21-OCT-94
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ;This routine contains the IVM transmission log error processing
 | 
|---|
| 5 |  ;protocols.
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 |  ;See EN^IVMLERR1 for additional documentation on 'system wide variables'
 | 
|---|
| 8 |  ;used in this routine.
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 | CL ;Entry point for IVMLE CHANGE LIST protocol
 | 
|---|
| 11 |  ; Input  -- IVMEPSTA Error processing statuses
 | 
|---|
| 12 |  ; Output -- IVMEPSTA Error processing statuses
 | 
|---|
| 13 |  ;           VALMSG   Custom message
 | 
|---|
| 14 |  ;           VALMBCK  R   =Refresh screen
 | 
|---|
| 15 |  N DIR,DTOUT,DUOUT,Y
 | 
|---|
| 16 |  D FULL^VALM1
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  ;Ask user to select error processing statuses
 | 
|---|
| 19 |  S DIR(0)="SMO^1:New;2:Checked;3:Both"
 | 
|---|
| 20 |  S DIR("A")="Select Error Processing Status"
 | 
|---|
| 21 |  D ^DIR
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 |  ;Process user response
 | 
|---|
| 24 |  S:Y=3 Y="1^2"
 | 
|---|
| 25 |  I Y,"^1^2^"[(U_Y_U) D
 | 
|---|
| 26 |  . S IVMEPSTA=Y
 | 
|---|
| 27 |  . ;Re-build error list for selected statuses
 | 
|---|
| 28 |  . D BLD^IVMLERR
 | 
|---|
| 29 |  S VALMSG=$$MSG^IVMLERR
 | 
|---|
| 30 |  S VALMBCK="R"
 | 
|---|
| 31 |  Q
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 | CD ;Entry point for IVMLE CHANGE DATE RANGE protocol
 | 
|---|
| 34 |  ; Input  -- IVMBEG   Begin date
 | 
|---|
| 35 |  ;           IVMEND   End date
 | 
|---|
| 36 |  ; Output -- IVMBEG   Begin date
 | 
|---|
| 37 |  ;           IVMEND   End date
 | 
|---|
| 38 |  ;           VALMSG   Custom message
 | 
|---|
| 39 |  ;           VALMBCK  R   =Refresh screen
 | 
|---|
| 40 |  N VALMB,VALMBEG,VALMEND
 | 
|---|
| 41 |  S VALMB=IVMBEG
 | 
|---|
| 42 |  ;
 | 
|---|
| 43 |  ;Ask user for date range
 | 
|---|
| 44 |  D RANGE^VALM1
 | 
|---|
| 45 |  ;
 | 
|---|
| 46 |  ;Process user response
 | 
|---|
| 47 |  I 'VALMBEG!((IVMBEG=VALMBEG)&(IVMEND=VALMEND)) D
 | 
|---|
| 48 |  . W !!,"Date Range was not changed."
 | 
|---|
| 49 |  . D PAUSE^VALM1
 | 
|---|
| 50 |  . S VALMBCK=""
 | 
|---|
| 51 |  ELSE  D
 | 
|---|
| 52 |  . S IVMBEG=VALMBEG,IVMEND=VALMEND
 | 
|---|
| 53 |  . ;Re-build error list for selected date range
 | 
|---|
| 54 |  . D BLD^IVMLERR
 | 
|---|
| 55 |  . S VALMBCK="R"
 | 
|---|
| 56 |  S VALMSG=$$MSG^IVMLERR
 | 
|---|
| 57 |  Q
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 | SL ;Entry point for IVMLE SORT LIST protocol
 | 
|---|
| 60 |  ; Input  -- IVMSRTBY Sort by criteria
 | 
|---|
| 61 |  ; Output -- IVMSRTBY Sort by criteria
 | 
|---|
| 62 |  ;           VALMSG   Custom message
 | 
|---|
| 63 |  ;           VALMBCK  R   =Refresh screen
 | 
|---|
| 64 |  N DIR,DTOUT,DUOUT,Y
 | 
|---|
| 65 |  D FULL^VALM1
 | 
|---|
| 66 |  ;
 | 
|---|
| 67 |  ;Ask user to select sort criteria
 | 
|---|
| 68 |  S DIR(0)="SMO^P:Patient Name;D:Date/Time ACK Received"
 | 
|---|
| 69 |  S DIR("A")="Select Sort By"
 | 
|---|
| 70 |  D ^DIR
 | 
|---|
| 71 |  ;
 | 
|---|
| 72 |  ;Process user response
 | 
|---|
| 73 |  I "^P^D^"[(U_Y_U),IVMSRTBY'=Y D
 | 
|---|
| 74 |  . S IVMSRTBY=Y
 | 
|---|
| 75 |  . ;Re-build error list for selected sort criteria
 | 
|---|
| 76 |  . D BLD^IVMLERR
 | 
|---|
| 77 |  S VALMSG=$$MSG^IVMLERR
 | 
|---|
| 78 |  S VALMBCK="R"
 | 
|---|
| 79 |  Q
 | 
|---|
| 80 |  ;
 | 
|---|
| 81 | CE ;Entry point for IVMLE CHECK ERROR OFF LIST protocol
 | 
|---|
| 82 |  ; Input  -- None
 | 
|---|
| 83 |  ; Output -- VALMSG   Custom message
 | 
|---|
| 84 |  ;           VALMBCK  R   =Refresh screen
 | 
|---|
| 85 |  N IVMLINE,IVMNUM,IVMTLIEN,VALMY
 | 
|---|
| 86 |  ;
 | 
|---|
| 87 |  ;Ask user to select transmission errors to check off the list
 | 
|---|
| 88 |  D EN^VALM2(XQORNOD(0))
 | 
|---|
| 89 |  D FULL^VALM1
 | 
|---|
| 90 |  ;
 | 
|---|
| 91 |  ;Process user selection
 | 
|---|
| 92 |  S IVMNUM=0
 | 
|---|
| 93 |  F  S IVMNUM=$O(VALMY(IVMNUM)) Q:'IVMNUM  D
 | 
|---|
| 94 |  . ;Invoke call to check error off list
 | 
|---|
| 95 |  . I $D(^TMP(IVMARY_"IDX",$J,IVMNUM)) S IVMLINE=+^(IVMNUM),IVMTLIEN=+$P(^(IVMNUM),U,2) D CHKERR(IVMARY,IVMLINE,IVMTLIEN)
 | 
|---|
| 96 |  S VALMBCK="R"
 | 
|---|
| 97 |  S VALMSG=$$MSG^IVMLERR
 | 
|---|
| 98 |  Q
 | 
|---|
| 99 |  ;
 | 
|---|
| 100 | CHKERR(IVMARY,IVMLINE,IVMTLIEN) ;Check error off list
 | 
|---|
| 101 |  ; Input  -- IVMARY   Global array subscript
 | 
|---|
| 102 |  ;           IVMLINE  Line number
 | 
|---|
| 103 |  ;           IVMTLIEN IVM transmission log IEN
 | 
|---|
| 104 |  ; Output -- None
 | 
|---|
| 105 |  N IVMERMSG
 | 
|---|
| 106 |  I $$ERRSTAT^IVMTLOG(IVMTLIEN,2,.IVMERMSG) D
 | 
|---|
| 107 |  . D FLDTEXT^VALM10(IVMLINE,"STATUS","Checked")
 | 
|---|
| 108 |  . D FLDCTRL^VALM10(IVMLINE,"STATUS",IOINHI,IOINORM)
 | 
|---|
| 109 |  ELSE  D
 | 
|---|
| 110 |  . W !,^TMP(IVMARY,$J,IVMLINE,0)
 | 
|---|
| 111 |  . W:$G(IVMERMSG)'="" !,"...",$$LOWER^VALM1(IVMERMSG)
 | 
|---|
| 112 |  . W !,"...Unable to check error off list"
 | 
|---|
| 113 |  . D PAUSE^VALM1
 | 
|---|
| 114 |  Q
 | 
|---|
| 115 |  ;
 | 
|---|
| 116 | RP ;Entry point for IVMLE RETRANSMIT PATIENT protocol
 | 
|---|
| 117 |  ; Input  -- None
 | 
|---|
| 118 |  ; Output -- VALMSG   Custom message
 | 
|---|
| 119 |  ;           VALMBCK  R   =Refresh screen
 | 
|---|
| 120 |  N IVMLINE,IVMNUM,IVMTLIEN,IVMTLOG,VALMY
 | 
|---|
| 121 |  ;
 | 
|---|
| 122 |  ;Ask user to select transmission errors to retransmit patient
 | 
|---|
| 123 |  D EN^VALM2(XQORNOD(0))
 | 
|---|
| 124 |  D FULL^VALM1
 | 
|---|
| 125 |  ;
 | 
|---|
| 126 |  ;Process user selection
 | 
|---|
| 127 |  S IVMNUM=0
 | 
|---|
| 128 |  F  S IVMNUM=$O(VALMY(IVMNUM)) Q:'IVMNUM  D
 | 
|---|
| 129 |  . I $D(^TMP(IVMARY_"IDX",$J,IVMNUM)) S IVMLINE=+^(IVMNUM),IVMTLIEN=+$P(^(IVMNUM),U,2) D
 | 
|---|
| 130 |  . . ;Get information for IVM transmission log entry and invoke code
 | 
|---|
| 131 |  . . ;to set patient to retransmit
 | 
|---|
| 132 |  . . I $$GET^IVMTLOG(IVMTLIEN,.IVMTLOG) D SETPAT(IVMARY,IVMLINE,.IVMTLOG)
 | 
|---|
| 133 |  S VALMBCK="R"
 | 
|---|
| 134 |  S VALMSG=$$MSG^IVMLERR
 | 
|---|
| 135 |  Q
 | 
|---|
| 136 |  ;
 | 
|---|
| 137 | SETPAT(IVMARY,IVMLINE,IVMTLOG) ;Set patient to retransmit
 | 
|---|
| 138 |  ; Input  -- IVMARY   Global array subscript
 | 
|---|
| 139 |  ;           IVMLINE  Line number
 | 
|---|
| 140 |  ;           IVMTLOG  IVM transmission log entry array
 | 
|---|
| 141 |  ; Output -- None
 | 
|---|
| 142 |  N IVMERMSG,IVMEVTS
 | 
|---|
| 143 |  M IVMEVTS=IVMTLOG("EVENTS")
 | 
|---|
| 144 |  ;
 | 
|---|
| 145 |  ;Set patient to retransmit
 | 
|---|
| 146 |  I $$SETSTAT^IVMPLOG(IVMTLOG("PAT"),.IVMEVTS,.IVMERMSG) D
 | 
|---|
| 147 |  . D UPDPAT(IVMARY,IVMTLOG("PAT"))
 | 
|---|
| 148 |  ELSE  D
 | 
|---|
| 149 |  . W !,^TMP(IVMARY,$J,IVMLINE,0)
 | 
|---|
| 150 |  . W:$G(IVMERMSG)'="" !,"...",$$LOWER^VALM1(IVMERMSG)
 | 
|---|
| 151 |  . W !,"...Unable to set transmit flag for patient"
 | 
|---|
| 152 |  . D PAUSE^VALM1
 | 
|---|
| 153 |  Q
 | 
|---|
| 154 |  ;
 | 
|---|
| 155 | UPDPAT(IVMARY,IVMDFN) ;Update all IVM transmssion error log entries in the list
 | 
|---|
| 156 |  ;for the patient as retransmit
 | 
|---|
| 157 |  ; Input  -- IVMARY   Global array subscript
 | 
|---|
| 158 |  ;           IVMDFN   IVM patient IEN
 | 
|---|
| 159 |  ; Output -- None
 | 
|---|
| 160 |  N IVMLINE,IVMTLIEN
 | 
|---|
| 161 |  ;
 | 
|---|
| 162 |  ;Loop through entries in the list for the patient
 | 
|---|
| 163 |  S IVMLINE=0
 | 
|---|
| 164 |  F  S IVMLINE=$O(^TMP(IVMARY_"IDX",$J,"PT",IVMDFN,IVMLINE)) Q:'IVMLINE  S IVMTLIEN=+^(IVMLINE) D
 | 
|---|
| 165 |  . ;Update entry as retransmit
 | 
|---|
| 166 |  . D FLDTEXT^VALM10(IVMLINE,"RETRANSMIT","*")
 | 
|---|
| 167 |  . D FLDCTRL^VALM10(IVMLINE,"RETRANSMIT",IOINHI,IOINORM)
 | 
|---|
| 168 |  . ;Invoke code to check error off the list
 | 
|---|
| 169 |  . D CHKERR(IVMARY,IVMLINE,IVMTLIEN)
 | 
|---|
| 170 |  Q
 | 
|---|