| 1 | SCMCHLR9 ;ALB/KCL - PCMM HL7 Reject Transmission Report Con't; 22-FEB-2000 | 
|---|
| 2 | ;;5.3;Scheduling;**210,284,297**;AUG 13,1993 | 
|---|
| 3 | ; | 
|---|
| 4 | PRINT ; Description: Used to print report. | 
|---|
| 5 | ; | 
|---|
| 6 | ;Init variables | 
|---|
| 7 | N CRT,QUIT,PAGE,SUBSCRPT,SCARRAY | 
|---|
| 8 | K SCARRAY | 
|---|
| 9 | S SCARRAY="SCERRSRT" | 
|---|
| 10 | K ^TMP(SCARRAY,$J) | 
|---|
| 11 | S (QUIT,PAGE)=0 | 
|---|
| 12 | S CRT=$S($E(IOST,1,2)="C-":1,1:0) | 
|---|
| 13 | ; | 
|---|
| 14 | ;Get PCMM HL7 Transmission Log errors | 
|---|
| 15 | D GET^SCMCHLR2(SCARRAY,$G(SCRP("BEGIN")),$G(SCRP("END")),$G(SCRP("EPS")),$G(SCRP("SORT"))) | 
|---|
| 16 | ; | 
|---|
| 17 | U IO | 
|---|
| 18 | I CRT,PAGE=0 W @IOF | 
|---|
| 19 | S PAGE=1 | 
|---|
| 20 | D HEADER | 
|---|
| 21 | D PRINTERR($G(SCRP("SORT")),$G(SCRP("EPS"))) | 
|---|
| 22 | I CRT,'QUIT D PAUSE | 
|---|
| 23 | I $D(ZTQUEUED) S ZTREQ="@" | 
|---|
| 24 | D ^%ZISC | 
|---|
| 25 | ; | 
|---|
| 26 | K ^TMP(SCARRAY,$J) | 
|---|
| 27 | Q | 
|---|
| 28 | ; | 
|---|
| 29 | LINE(LINE) ; | 
|---|
| 30 | ; Description: Prints a line. First prints header if at end of page. | 
|---|
| 31 | ; | 
|---|
| 32 | I CRT,($Y>(IOSL-4)) D | 
|---|
| 33 | .D PAUSE | 
|---|
| 34 | .Q:QUIT | 
|---|
| 35 | .W @IOF | 
|---|
| 36 | .D HEADER | 
|---|
| 37 | .W LINE | 
|---|
| 38 | ; | 
|---|
| 39 | E  I ('CRT),($Y>(IOSL-2)) D | 
|---|
| 40 | .W @IOF | 
|---|
| 41 | .D HEADER | 
|---|
| 42 | .W LINE | 
|---|
| 43 | ; | 
|---|
| 44 | E  W !,LINE | 
|---|
| 45 | Q | 
|---|
| 46 | ; | 
|---|
| 47 | ; | 
|---|
| 48 | HEADER ; Description: Prints the report header. | 
|---|
| 49 | ; | 
|---|
| 50 | N LINE,X | 
|---|
| 51 | I $Y>1 W @IOF | 
|---|
| 52 | W !,"PCMM Transmission Error Report" | 
|---|
| 53 | W ?33,"Run Date: "_$$FMTE^XLFDT($$NOW^XLFDT,"1P") | 
|---|
| 54 | W ?70,"Page ",PAGE | 
|---|
| 55 | S PAGE=PAGE+1 | 
|---|
| 56 | W ! | 
|---|
| 57 | S X=$G(SCRP("SORT")) | 
|---|
| 58 | W !,"Sort By: "_$S(X="N":"Patient Name",X="D":"Date Error Received",X="P":"Provider",1:"Unknown") | 
|---|
| 59 | I SCRP("BEGIN") D | 
|---|
| 60 | .W ?40,"Date Range: "_$$FMTE^XLFDT(SCRP("BEGIN"))_" to "_$$FMTE^XLFDT($G(SCRP("END"))) | 
|---|
| 61 | E  D | 
|---|
| 62 | .W ?40,"Date Range: "_$$DRMSG^SCMCHLR1 | 
|---|
| 63 | S X=$G(SCRP("EPS")) | 
|---|
| 64 | W !,"Error Processing Status: "_$S(X=1:"New",X=2:"Checked",X=3:"New/Checked",1:"Unknown") | 
|---|
| 65 | W ?40,$$MRKMSG^SCMCHLR1 | 
|---|
| 66 | W ! | 
|---|
| 67 | ; | 
|---|
| 68 | W !?2,"Patient Name",?23,"PATID",?31,"Date Rec",?42,"Provider",?63,"Type",?70,"EP Status" | 
|---|
| 69 | S $P(LINE,"-",80)="-" | 
|---|
| 70 | W !,LINE,! | 
|---|
| 71 | Q | 
|---|
| 72 | ; | 
|---|
| 73 | ; | 
|---|
| 74 | PAUSE ; Description: Screen pause.  Sets QUIT=1 if user decides to quit. | 
|---|
| 75 | ; | 
|---|
| 76 | N DIR,X,Y | 
|---|
| 77 | F  Q:$Y>(IOSL-3)  W ! | 
|---|
| 78 | S DIR(0)="E" | 
|---|
| 79 | D ^DIR | 
|---|
| 80 | I ('(+Y))!$D(DIRUT) S QUIT=1 | 
|---|
| 81 | Q | 
|---|
| 82 | ; | 
|---|
| 83 | ; | 
|---|
| 84 | PRINTERR(SCSORTBY,SCEPS) ; Description: Print list of errors. | 
|---|
| 85 | ; | 
|---|
| 86 | ;  Input: | 
|---|
| 87 | ;   SCSORTBY - Sort by criteria | 
|---|
| 88 | ;               N -> Patient Name | 
|---|
| 89 | ;               D -> Date/Time Ack Received | 
|---|
| 90 | ;               P -> Provider | 
|---|
| 91 | ;      SCEPS -  Error processing status | 
|---|
| 92 | ; | 
|---|
| 93 | ; Output: None | 
|---|
| 94 | ; | 
|---|
| 95 | N DFN,SCSUB,SCLINE,SCTXT,SCTLIEN,SCERIEN,SCTLOG,SCPROV,SCTYPE | 
|---|
| 96 | ; | 
|---|
| 97 | ;Loop thru sort array by pat name, OR date ack rec'd, OR provider | 
|---|
| 98 | S SCSUB=$S(SCSORTBY="N":"",SCSORTBY="P":"",1:0) | 
|---|
| 99 | F  S SCSUB=$O(^TMP("SCERRSRT",$J,SCSORTBY,SCSUB)) Q:SCSUB=""  D  Q:QUIT | 
|---|
| 100 | .;loop through PCMM HL7 Transmission Log ien(s) | 
|---|
| 101 | .S SCTLIEN=0 | 
|---|
| 102 | .F  S SCTLIEN=$O(^TMP("SCERRSRT",$J,SCSORTBY,SCSUB,SCTLIEN)) Q:'SCTLIEN  D  Q:QUIT | 
|---|
| 103 | ..;loop through Error Code subfile ien(s) | 
|---|
| 104 | ..S SCERIEN=0 | 
|---|
| 105 | ..F  S SCERIEN=$O(^TMP("SCERRSRT",$J,SCSORTBY,SCSUB,SCTLIEN,SCERIEN)) Q:'SCERIEN  D  Q:QUIT | 
|---|
| 106 | ...; | 
|---|
| 107 | ...;get data for PCMM HL7 Trans Log entry | 
|---|
| 108 | ...I $$GETLOG^SCMCHLA(SCTLIEN,SCERIEN,.SCTLOG) D | 
|---|
| 109 | ....; | 
|---|
| 110 | ....;set retransmit flag in line | 
|---|
| 111 | ....S SCLINE=$S($G(SCTLOG("STATUS"))="M":"*",1:" ") | 
|---|
| 112 | ....; | 
|---|
| 113 | ....;set patient name in line | 
|---|
| 114 | ....S SCTXT=$$LOWER^VALM1($S($G(SCTLOG("WORK")):"WORKLOAD",$G(SCTLOG("DFN")):$P($G(^DPT(SCTLOG("DFN"),0)),"^",1),1:"UNKNOWN")) | 
|---|
| 115 | ....S SCLINE=SCLINE_" "_$$LJ(SCTXT,18) | 
|---|
| 116 | ....; | 
|---|
| 117 | ....;set patient id in line | 
|---|
| 118 | ....S DFN=+SCTLOG("DFN") D PID^VADPT | 
|---|
| 119 | ....;D SET(SCARY,SCLINE,VA("BID"),SCCOL("PATID"),SCWID("PATID"),SCNUM,,,,.SCCNT) | 
|---|
| 120 | ....S SCLINE=SCLINE_"   "_$$LJ(VA("BID"),5) | 
|---|
| 121 | ....; | 
|---|
| 122 | ....;set date ack received in line | 
|---|
| 123 | ....S SCTXT=$$LOWER^VALM1($S($G(SCTLOG("ACK DT/TM")):$E($$FDATE^VALM1(SCTLOG("ACK DT/TM")),1,8),1:"UNKNOWN")) | 
|---|
| 124 | ....S SCLINE=SCLINE_"   "_$$LJ(SCTXT,8) | 
|---|
| 125 | ....; | 
|---|
| 126 | ....;set provider in display in line | 
|---|
| 127 | ....K SCHL | 
|---|
| 128 | ....S SCPROV="" | 
|---|
| 129 | ....;only get provider if ZPC segment error | 
|---|
| 130 | ....I $G(SCTLOG("WORK")) S SCPROV=$P($G(^SCPT(404.471,SCTLIEN,0)),U,8) | 
|---|
| 131 | ....I $G(SCTLOG("ERR","SEG"))="ZPC" D | 
|---|
| 132 | .....I $$GETHL7ID^SCMCHLA2($G(SCTLOG("ERR","ZPCID")),.SCHL) | 
|---|
| 133 | .....S SCPTR=$P($G(SCHL("HL7ID")),"-",2) | 
|---|
| 134 | .....I '$G(SCTLOG("WORK")) S SCPROV=$P($G(^SCTM(404.52,+$G(SCPTR),0)),"^",3) | 
|---|
| 135 | ....S SCTXT=$$LOWER^VALM1($S($G(SCPROV)'="":$$EXTERNAL^DILFD(404.52,.03,,SCPROV),1:"N/A")) | 
|---|
| 136 | ....S SCLINE=SCLINE_"   "_$$LJ(SCTXT,18) | 
|---|
| 137 | ....; | 
|---|
| 138 | ....;set provider type in line | 
|---|
| 139 | ....S SCTYPE=$P($G(SCHL("HL7ID")),"-",4) | 
|---|
| 140 | ....S SCTXT=$S(SCTYPE'="":SCTYPE,1:"N/A") | 
|---|
| 141 | ....S SCLINE=SCLINE_"   "_$$LJ(SCTXT,4) | 
|---|
| 142 | ....; | 
|---|
| 143 | ....;set error processing status in line | 
|---|
| 144 | ....S SCTXT=$$LOWER^VALM1($S($G(SCTLOG("ERR","EPS")):$$EXTERNAL^DILFD(404.47142,.06,,SCTLOG("ERR","EPS")),1:"UNKNOWN")) | 
|---|
| 145 | ....S SCLINE=SCLINE_"   "_$$LJ(SCTXT,7) | 
|---|
| 146 | ....; | 
|---|
| 147 | ....D LINE(SCLINE) Q:QUIT | 
|---|
| 148 | ....; | 
|---|
| 149 | ....;set error code/desc in line | 
|---|
| 150 | ....I $$GETEC^SCMCHLA2($G(SCTLOG("ERR","CODE")),.SCERR) | 
|---|
| 151 | ....S SCTXT="     Error: "_$S($G(SCERR("CODE"))'="":SCERR("CODE")_"-"_$G(SCERR("SHORT")),1:$$LOWER^VALM1("UNKNOWN")) | 
|---|
| 152 | ....S SCLINE=$$LJ(SCTXT,80) | 
|---|
| 153 | ....D LINE(SCLINE) Q:QUIT | 
|---|
| 154 | ; | 
|---|
| 155 | Q | 
|---|
| 156 | ; | 
|---|
| 157 | ; | 
|---|
| 158 | LJ(STRING,LENGTH) ; | 
|---|
| 159 | ; | 
|---|
| 160 | Q $$LJ^XLFSTR($E(STRING,1,LENGTH),LENGTH) | 
|---|