- SCRPW81 ; ALB/SCK - SCDX AMB CARE CLOSEOUT RPT FOR MT INDICATOR = U ; 9 JULY 2003
- ;;5.3;Scheduling;**302,440,474,1015**;AUG 13, 1993;Build 21
- ;
- EN ; Main entry point for report
- N DIR,DIRUT,SDBEG,SDEND,RSLT,Y,X
- ;
- S DIR("A")="Please select fiscal year",DIR(0)="SM^A:Previous Fiscal Year;B:Current Fiscal Year;O:Other Date Range"
- S DIR("B")="B"
- S DIR("?")="You may select either the previous fiscal year (A) or the current fiscal year (B). Select (O) if you choose to specify your own date range."
- D ^DIR K DIR
- Q:$D(DIRUT)
- S RSLT=Y
- ;
- I RSLT="A" D
- . D PASTYR(.SDBEG,.SDEND)
- E I RSLT="B" D
- . D CURYR(.SDBEG,.SDEND)
- E D
- . D GETDT(.SDBEG,.SDEND)
- Q:'$G(SDBEG)!('$G(SDEND))
- W !!?3,"Date Range: "_$$FMTE^XLFDT(SDBEG)_" to "_$$FMTE^XLFDT(SDEND)
- ;
- N X,Y,IORVON,IORVOFF
- S X="IORVON;IORVOFF"
- D ENDR^%ZISS
- W:$D(IORVON) IORVON
- W !,"A 132-Column printer is required for this report."
- W !,"This report will NOT print correctly to the screen!"
- W:$D(IORVOFF) IORVOFF
- ;
- N ZTSAVE,ZTRTN,ZTDESC,POP,%ZIS
- S %ZIS="Q" D ^%ZIS G:POP EXIT
- I $D(IO("Q")) D Q
- . S ZTSAVE("SDBEG")="",ZTSAVE("SDEND")="",ZTSAVE("DUZ")=""
- . S ZTRTN="RUN^SCRPW81"
- . S ZTDESC="XMITED OE MT=U RPT"
- . D ^%ZTLOAD D HOME^%ZIS K IO("Q")
- D RUN
- D ^%ZISC
- EXIT S:$D(ZTQUEUED) ZTREQ="@" Q
- ;
- RUN ; Run report
- U IO
- K ^TMP("SCDX MTU",$J),^TMP("SCDX ASORT",$J)
- ;
- D BLD(SDBEG,SDEND)
- D CHKMT
- D SRTNAME
- D MAIL
- D PRINT
- K ^TMP("SCDX MTU",$J),^TMP("SCDX ASORT",$J)
- Q
- ;
- PASTYR(SDBEG,SDEND) ; Set dates for previous fiscal year
- N CURYR,PRVYR,CURMN,%I
- ;
- D NOW^%DTC
- S CURYR=%I(3),CURMN=%I(1)
- I CURMN>9 D
- . S CURYR=CURYR+1
- S PRVYR=CURYR-1
- S SDEND=$$FMADD^XLFDT(PRVYR_"1001",-1)
- S SDBEG=$$FMADD^XLFDT(PRVYR_"1001",-365)
- Q
- ;
- CURYR(SDBEG,SDEND) ; Set dates for current fiscal year
- N CURYR,CURMN,%I
- ;
- D NOW^%DTC
- S CURYR=%I(3),CURMN=%I(1)
- I CURMN<10 D
- . S CURYR=CURYR-1
- S SDBEG=CURYR_"1001"
- S SDEND=$P($$NOW^XLFDT,".")
- Q
- ;
- GETDT(SDBEG,SDEND) ; Get beginning and ending date for search
- ; Output SDBEG Beginning for date range
- ; SDEND End of date range
- ; result 1 - If function successful
- ; 0 - If function NOT successful (User quit)
- ;
- N DIR,DIRUT,Y
- ;
- W !!?3,"You have selected to specify your own date range. Please note that by"
- W !?3,"doing so you may not generate an accurate picture of the AMB CARE"
- W !?3,"closeouts where the means test indicator equals 'U'.",!
- ;
- S DIR(0)="DAO^:DT:EX"
- S DIR("A")="Beginning Date: "
- S DIR("?")="^D HELP^%DTC"
- D ^DIR
- I $D(DIRUT) D Q
- . S SDBEG=0
- S SDBEG=Y
- ;
- S DIR(0)="DAO^:DT:EX"
- S DIR("A")="Ending Date: "
- D ^DIR
- I $D(DIRUT) D Q
- . S SDEND=0
- S SDEND=Y
- Q
- ;
- BLD(SDBEG,SDEND) ; Build list of patient OE's for date range
- ; Input SDBEG
- ; SDEND
- ;
- N SDX,SDMAX,SDOEI,CNT,NODE,SDOEX,SDLOC
- ;
- S SDX=$$FMADD^XLFDT(SDBEG,0,0,0,-1) ; set inital search DT to beginning date minus one second
- S SDMAX=$$FMADD^XLFDT(SDEND,0,23,59,59) ; set search end date to end date plus one day
- ;
- S ^TMP("SCDX MTU",$J,0,"BEGIN")=$H
- F S SDX=$O(^SCE("B",SDX)) Q:'SDX D Q:SDX>SDMAX
- . S SDOEI=0
- . F S SDOEI=$O(^SCE("B",SDX,SDOEI)) Q:'SDOEI D
- . . S NODE=$G(^SCE(SDOEI,0))
- . . Q:$P(NODE,U,6)>0 ; Quit if not parent encounter
- . . Q:$P(NODE,U,8)>3 ; Quit if Originating process is for credit stop code
- . . S SDLOC=+$P(NODE,U,4)
- . . Q:$$GET1^DIQ(44,SDLOC,2502,"I")="Y" ; Quit if non-count clinic
- . . S SDOEX=$O(^SD(409.73,"AENC",SDOEI,0))
- . . Q:'$P(NODE,U,2)
- . . S ^TMP("SCDX MTU",$J,$P(NODE,U,2),SDOEI)=$P(NODE,U,1)_U_SDOEX
- . . S ^TMP("SCDX MTU",$J,0,"CNT")=$G(^TMP("SCDX MTU",$J,0,"CNT"))+1
- S ^TMP("SCDX MTU",$J,0,"END")=$H
- Q
- ;
- CHKMT ; Clean out all except those meeting the MT=U conditions
- N DFN,SDOEI,SDOEDT,SDMT,SDO,SDR,SDN,SDAT,SDEC,SDMTI,SDMTT
- ;
- S DFN=0
- F S DFN=$O(^TMP("SCDX MTU",$J,DFN)) Q:'DFN D
- . I '$D(^DGMT(408.31,"C",DFN)) D Q ; No MT Data, bypass patient
- . . K ^TMP("SCDX MTU",$J,DFN)
- . S (SDR,SDO,SDN,SDOEI)=0
- . F S SDOEI=$O(^TMP("SCDX MTU",$J,DFN,SDOEI)) Q:'SDOEI D
- . . S SDOEDT=$P($G(^TMP("SCDX MTU",$J,DFN,SDOEI)),U,1)
- . . Q:'SDOEDT
- . . S SDEC=$$GET1^DIQ(409.68,SDOEI,.13,"I")
- . . S SDAT=$$GET1^DIQ(409.68,SDOEI,.1,"I")
- . . S SDMTI=$$MTI^SCDXUTL0(DFN,SDOEDT,SDEC,SDAT,SDOEI)
- . . I SDMTI'="U" D Q
- . . . K ^TMP("SCDX MTU",$J,DFN)
- . . S SDMTT=$$LST^DGMTU(DFN,SDOEDT,1) I $P(SDMTT,U,4)="N" D Q
- . . . K ^TMP("SCDX MTU",$J,DFN)
- . . S $P(^TMP("SCDX MTU",$J,DFN,SDOEI),U,4)=SDMTI
- S ^TMP("SCDX MTU",$J,0,"END")=$H K SDMTT
- Q
- ;
- SRTNAME ; Sort remaining encounters by patient name and OE date
- N DFN,SDOEI,SDNAME,SDOEDT
- ;
- S DFN=0
- F S DFN=$O(^TMP("SCDX MTU",$J,DFN)) Q:'DFN D
- . S SDNAME=$$GET1^DIQ(2,DFN,.01)
- . Q:SDNAME']""
- . S ^TMP("SCDX MTU",$J,0,"PATNUM")=$G(^TMP("SCDX MTU",$J,0,"PATNUM"))+1
- . S SDOEI=0
- . F S SDOEI=$O(^TMP("SCDX MTU",$J,DFN,SDOEI)) Q:'SDOEI D
- . . S SDOEDT=$P(^TMP("SCDX MTU",$J,DFN,SDOEI),U,1)
- . . S ^TMP("SCDX ASORT",$J,SDNAME,SDOEDT)=$P(^TMP("SCDX MTU",$J,DFN,SDOEI),U,2)_U_SDOEI_U_DFN_U_$P(^TMP("SCDX MTU",$J,DFN,SDOEI),U,4)
- . . S ^TMP("SCDX MTU",$J,0,"FINAL CNT")=$G(^TMP("SCDX MTU",$J,0,"FINAL CNT"))+1
- S ^TMP("SCDX MTU",$J,0,"END2")=$H
- Q
- ;
- MAIL ; send message with report statistics
- N MSG,XMSUB,XMY,XMTEXT,XMDUZ
- ;
- S MSG(1)="Date Range for Report "_$$FMTE^XLFDT(SDBEG,2)_" to "_$$FMTE^XLFDT(SDEND,2)
- S MSG(2)=""
- S MSG(3)="Report Started "_$$HTE^XLFDT(^TMP("SCDX MTU",$J,0,"BEGIN"),2)
- S MSG(4)="Report Finished "_$$HTE^XLFDT(^TMP("SCDX MTU",$J,0,"END2"),2)
- S MSG(5)="Total Time for Report "_$$HDIFF^XLFDT(^TMP("SCDX MTU",$J,0,"END2"),^TMP("SCDX MTU",$J,0,"BEGIN"),3)
- S MSG(6)=""
- S MSG(7)="Outpatient Encounters Scanned "_$J($FN(+$G(^TMP("SCDX MTU",$J,0,"CNT")),","),20)
- S MSG(8)="Outpatient Encounters Reported "_$J($FN(+$G(^TMP("SCDX MTU",$J,0,"FINAL CNT")),","),20)
- S MSG(9)="Patient Count "_$J($FN(+$G(^TMP("SCDX MTU",$J,0,"PATNUM")),","),20)
- ;
- S XMSUB="MEANS TEST = 'U' REPORT STATISTICS"
- S XMTEXT="MSG("
- S XMY(DUZ)=""
- S XMDUZ="ACRP MT=U STATS"
- D ^XMD
- Q
- ;
- PRINT ; Print Report
- ;SD*5.3*474 added SDFLAG and corresponding logic
- N SDNAME,SDNODE,SDXNODE,SDOEI,SDOEX,SDOEDT,DFN,PRNTL4,VA,PAGE,SDFLAG
- ;
- S PAGE=0
- D HDR
- S SDNAME=""
- F S SDNAME=$O(^TMP("SCDX ASORT",$J,SDNAME)) Q:SDNAME']"" D
- . W !,$E(SDNAME,1,30)
- . S PRNTL4=0,SDFLAG=1
- . S SDOEDT=0
- . F S SDOEDT=$O(^TMP("SCDX ASORT",$J,SDNAME,SDOEDT)) Q:'SDOEDT D
- . . S DFN=$P($G(^TMP("SCDX ASORT",$J,SDNAME,SDOEDT)),U,3)
- . . S SDOEX=$P($G(^TMP("SCDX ASORT",$J,SDNAME,SDOEDT)),U,1)
- . . S SDOEI=$P($G(^TMP("SCDX ASORT",$J,SDNAME,SDOEDT)),U,2)
- . . I 'PRNTL4 D S PRNTL4=1
- . . . D PID^VADPT6
- . . . W ?($L(SDNAME)+1),"(",VA("BID"),")"
- . . I 'SDFLAG D S SDFLAG=1
- . . . W !,$E(SDNAME,1,30)
- . . . D PID^VADPT6
- . . . W ?($L(SDNAME)+1),"(",VA("BID"),")"
- . . W ?35,$$FMTE^XLFDT(SDOEDT,"D"),$S(SDOEX>0:" *",1:" ")
- . . W ?56,$P($G(^TMP("SCDX ASORT",$J,SDNAME,SDOEDT)),U,4)
- . . S SDNODE=$G(^SCE(SDOEI,0))
- . . W ?68,$E($$GET1^DIQ(40.8,$P(SDNODE,U,11),.01),1,30)
- . . W ?100,$E($$GET1^DIQ(44,$P(SDNODE,U,4),.01),1,30)
- . . I ($Y+5)>IOSL D HDR S SDFLAG=0 Q
- . . W !
- D FTR1
- Q
- ;
- HDR ; Report Header
- N SPACE,LINE,TAB,PRNTLN
- ;
- I PAGE>0 D FTR
- W:PAGE>0 @IOF
- S PAGE=PAGE+1
- ;
- S PRNTLN="Transmitted Outpatient Encounters with Means Test = 'U'"
- S TAB=(IOM-$L(PRNTLN))\2
- W !?TAB,PRNTLN
- S PRNTLN="Date Range: "_$$FMTE^XLFDT(SDBEG)_" thru "_$$FMTE^XLFDT(SDEND)
- S TAB=(IOM-$L(PRNTLN))\2
- W !!?TAB,PRNTLN
- S PRNTLN="Print Date: "_$$FMTE^XLFDT($$NOW^XLFDT)
- S TAB=(IOM-$L(PRNTLN))\2
- W !?TAB,PRNTLN
- S PRNTLN="Page: "_PAGE
- S TAB=(IOM-$L(PRNTLN))\2
- W !?TAB,PRNTLN
- ;
- W !!?35,"Outpatient",?52,"",?68,"Medical Ctr"
- W !,"PATIENT NAME",?35,"Encounter Date",?52,"MT Indicator",?68,"Division",?100,"Clinic"
- ;
- S $P(LINE,"=",IOM)="" W !,LINE
- Q
- ;
- FTR ; Report Footer
- N SDX
- ;
- F SDX=$Y:1:IOSL-2 W !
- W ?5,"* - Transmitted Outpatient Encounter"
- Q
- ;
- FTR1 ;
- W !?5,"* - Transmitted Outpatient Encounter"
- Q
- ;
- SCRPW81 ; ALB/SCK - SCDX AMB CARE CLOSEOUT RPT FOR MT INDICATOR = U ; 9 JULY 2003
- +1 ;;5.3;Scheduling;**302,440,474,1015**;AUG 13, 1993;Build 21
- +2 ;
- EN ; Main entry point for report
- +1 NEW DIR,DIRUT,SDBEG,SDEND,RSLT,Y,X
- +2 ;
- +3 SET DIR("A")="Please select fiscal year"
- SET DIR(0)="SM^A:Previous Fiscal Year;B:Current Fiscal Year;O:Other Date Range"
- +4 SET DIR("B")="B"
- +5 SET DIR("?")="You may select either the previous fiscal year (A) or the current fiscal year (B). Select (O) if you choose to specify your own date range."
- +6 DO ^DIR
- KILL DIR
- +7 IF $DATA(DIRUT)
- QUIT
- +8 SET RSLT=Y
- +9 ;
- +10 IF RSLT="A"
- Begin DoDot:1
- +11 DO PASTYR(.SDBEG,.SDEND)
- End DoDot:1
- +12 IF '$TEST
- IF RSLT="B"
- Begin DoDot:1
- +13 DO CURYR(.SDBEG,.SDEND)
- End DoDot:1
- +14 IF '$TEST
- Begin DoDot:1
- +15 DO GETDT(.SDBEG,.SDEND)
- End DoDot:1
- +16 IF '$GET(SDBEG)!('$GET(SDEND))
- QUIT
- +17 WRITE !!?3,"Date Range: "_$$FMTE^XLFDT(SDBEG)_" to "_$$FMTE^XLFDT(SDEND)
- +18 ;
- +19 NEW X,Y,IORVON,IORVOFF
- +20 SET X="IORVON;IORVOFF"
- +21 DO ENDR^%ZISS
- +22 IF $DATA(IORVON)
- WRITE IORVON
- +23 WRITE !,"A 132-Column printer is required for this report."
- +24 WRITE !,"This report will NOT print correctly to the screen!"
- +25 IF $DATA(IORVOFF)
- WRITE IORVOFF
- +26 ;
- +27 NEW ZTSAVE,ZTRTN,ZTDESC,POP,%ZIS
- +28 SET %ZIS="Q"
- DO ^%ZIS
- IF POP
- GOTO EXIT
- +29 IF $DATA(IO("Q"))
- Begin DoDot:1
- +30 SET ZTSAVE("SDBEG")=""
- SET ZTSAVE("SDEND")=""
- SET ZTSAVE("DUZ")=""
- +31 SET ZTRTN="RUN^SCRPW81"
- +32 SET ZTDESC="XMITED OE MT=U RPT"
- +33 DO ^%ZTLOAD
- DO HOME^%ZIS
- KILL IO("Q")
- End DoDot:1
- QUIT
- +34 DO RUN
- +35 DO ^%ZISC
- EXIT IF $DATA(ZTQUEUED)
- SET ZTREQ="@"
- QUIT
- +1 ;
- RUN ; Run report
- +1 USE IO
- +2 KILL ^TMP("SCDX MTU",$JOB),^TMP("SCDX ASORT",$JOB)
- +3 ;
- +4 DO BLD(SDBEG,SDEND)
- +5 DO CHKMT
- +6 DO SRTNAME
- +7 DO MAIL
- +8 DO PRINT
- +9 KILL ^TMP("SCDX MTU",$JOB),^TMP("SCDX ASORT",$JOB)
- +10 QUIT
- +11 ;
- PASTYR(SDBEG,SDEND) ; Set dates for previous fiscal year
- +1 NEW CURYR,PRVYR,CURMN,%I
- +2 ;
- +3 DO NOW^%DTC
- +4 SET CURYR=%I(3)
- SET CURMN=%I(1)
- +5 IF CURMN>9
- Begin DoDot:1
- +6 SET CURYR=CURYR+1
- End DoDot:1
- +7 SET PRVYR=CURYR-1
- +8 SET SDEND=$$FMADD^XLFDT(PRVYR_"1001",-1)
- +9 SET SDBEG=$$FMADD^XLFDT(PRVYR_"1001",-365)
- +10 QUIT
- +11 ;
- CURYR(SDBEG,SDEND) ; Set dates for current fiscal year
- +1 NEW CURYR,CURMN,%I
- +2 ;
- +3 DO NOW^%DTC
- +4 SET CURYR=%I(3)
- SET CURMN=%I(1)
- +5 IF CURMN<10
- Begin DoDot:1
- +6 SET CURYR=CURYR-1
- End DoDot:1
- +7 SET SDBEG=CURYR_"1001"
- +8 SET SDEND=$PIECE($$NOW^XLFDT,".")
- +9 QUIT
- +10 ;
- GETDT(SDBEG,SDEND) ; Get beginning and ending date for search
- +1 ; Output SDBEG Beginning for date range
- +2 ; SDEND End of date range
- +3 ; result 1 - If function successful
- +4 ; 0 - If function NOT successful (User quit)
- +5 ;
- +6 NEW DIR,DIRUT,Y
- +7 ;
- +8 WRITE !!?3,"You have selected to specify your own date range. Please note that by"
- +9 WRITE !?3,"doing so you may not generate an accurate picture of the AMB CARE"
- +10 WRITE !?3,"closeouts where the means test indicator equals 'U'.",!
- +11 ;
- +12 SET DIR(0)="DAO^:DT:EX"
- +13 SET DIR("A")="Beginning Date: "
- +14 SET DIR("?")="^D HELP^%DTC"
- +15 DO ^DIR
- +16 IF $DATA(DIRUT)
- Begin DoDot:1
- +17 SET SDBEG=0
- End DoDot:1
- QUIT
- +18 SET SDBEG=Y
- +19 ;
- +20 SET DIR(0)="DAO^:DT:EX"
- +21 SET DIR("A")="Ending Date: "
- +22 DO ^DIR
- +23 IF $DATA(DIRUT)
- Begin DoDot:1
- +24 SET SDEND=0
- End DoDot:1
- QUIT
- +25 SET SDEND=Y
- +26 QUIT
- +27 ;
- BLD(SDBEG,SDEND) ; Build list of patient OE's for date range
- +1 ; Input SDBEG
- +2 ; SDEND
- +3 ;
- +4 NEW SDX,SDMAX,SDOEI,CNT,NODE,SDOEX,SDLOC
- +5 ;
- +6 ; set inital search DT to beginning date minus one second
- SET SDX=$$FMADD^XLFDT(SDBEG,0,0,0,-1)
- +7 ; set search end date to end date plus one day
- SET SDMAX=$$FMADD^XLFDT(SDEND,0,23,59,59)
- +8 ;
- +9 SET ^TMP("SCDX MTU",$JOB,0,"BEGIN")=$HOROLOG
- +10 FOR
- SET SDX=$ORDER(^SCE("B",SDX))
- IF 'SDX
- QUIT
- Begin DoDot:1
- +11 SET SDOEI=0
- +12 FOR
- SET SDOEI=$ORDER(^SCE("B",SDX,SDOEI))
- IF 'SDOEI
- QUIT
- Begin DoDot:2
- +13 SET NODE=$GET(^SCE(SDOEI,0))
- +14 ; Quit if not parent encounter
- IF $PIECE(NODE,U,6)>0
- QUIT
- +15 ; Quit if Originating process is for credit stop code
- IF $PIECE(NODE,U,8)>3
- QUIT
- +16 SET SDLOC=+$PIECE(NODE,U,4)
- +17 ; Quit if non-count clinic
- IF $$GET1^DIQ(44,SDLOC,2502,"I")="Y"
- QUIT
- +18 SET SDOEX=$ORDER(^SD(409.73,"AENC",SDOEI,0))
- +19 IF '$PIECE(NODE,U,2)
- QUIT
- +20 SET ^TMP("SCDX MTU",$JOB,$PIECE(NODE,U,2),SDOEI)=$PIECE(NODE,U,1)_U_SDOEX
- +21 SET ^TMP("SCDX MTU",$JOB,0,"CNT")=$GET(^TMP("SCDX MTU",$JOB,0,"CNT"))+1
- End DoDot:2
- End DoDot:1
- IF SDX>SDMAX
- QUIT
- +22 SET ^TMP("SCDX MTU",$JOB,0,"END")=$HOROLOG
- +23 QUIT
- +24 ;
- CHKMT ; Clean out all except those meeting the MT=U conditions
- +1 NEW DFN,SDOEI,SDOEDT,SDMT,SDO,SDR,SDN,SDAT,SDEC,SDMTI,SDMTT
- +2 ;
- +3 SET DFN=0
- +4 FOR
- SET DFN=$ORDER(^TMP("SCDX MTU",$JOB,DFN))
- IF 'DFN
- QUIT
- Begin DoDot:1
- +5 ; No MT Data, bypass patient
- IF '$DATA(^DGMT(408.31,"C",DFN))
- Begin DoDot:2
- +6 KILL ^TMP("SCDX MTU",$JOB,DFN)
- End DoDot:2
- QUIT
- +7 SET (SDR,SDO,SDN,SDOEI)=0
- +8 FOR
- SET SDOEI=$ORDER(^TMP("SCDX MTU",$JOB,DFN,SDOEI))
- IF 'SDOEI
- QUIT
- Begin DoDot:2
- +9 SET SDOEDT=$PIECE($GET(^TMP("SCDX MTU",$JOB,DFN,SDOEI)),U,1)
- +10 IF 'SDOEDT
- QUIT
- +11 SET SDEC=$$GET1^DIQ(409.68,SDOEI,.13,"I")
- +12 SET SDAT=$$GET1^DIQ(409.68,SDOEI,.1,"I")
- +13 SET SDMTI=$$MTI^SCDXUTL0(DFN,SDOEDT,SDEC,SDAT,SDOEI)
- +14 IF SDMTI'="U"
- Begin DoDot:3
- +15 KILL ^TMP("SCDX MTU",$JOB,DFN)
- End DoDot:3
- QUIT
- +16 SET SDMTT=$$LST^DGMTU(DFN,SDOEDT,1)
- IF $PIECE(SDMTT,U,4)="N"
- Begin DoDot:3
- +17 KILL ^TMP("SCDX MTU",$JOB,DFN)
- End DoDot:3
- QUIT
- +18 SET $PIECE(^TMP("SCDX MTU",$JOB,DFN,SDOEI),U,4)=SDMTI
- End DoDot:2
- End DoDot:1
- +19 SET ^TMP("SCDX MTU",$JOB,0,"END")=$HOROLOG
- KILL SDMTT
- +20 QUIT
- +21 ;
- SRTNAME ; Sort remaining encounters by patient name and OE date
- +1 NEW DFN,SDOEI,SDNAME,SDOEDT
- +2 ;
- +3 SET DFN=0
- +4 FOR
- SET DFN=$ORDER(^TMP("SCDX MTU",$JOB,DFN))
- IF 'DFN
- QUIT
- Begin DoDot:1
- +5 SET SDNAME=$$GET1^DIQ(2,DFN,.01)
- +6 IF SDNAME']""
- QUIT
- +7 SET ^TMP("SCDX MTU",$JOB,0,"PATNUM")=$GET(^TMP("SCDX MTU",$JOB,0,"PATNUM"))+1
- +8 SET SDOEI=0
- +9 FOR
- SET SDOEI=$ORDER(^TMP("SCDX MTU",$JOB,DFN,SDOEI))
- IF 'SDOEI
- QUIT
- Begin DoDot:2
- +10 SET SDOEDT=$PIECE(^TMP("SCDX MTU",$JOB,DFN,SDOEI),U,1)
- +11 SET ^TMP("SCDX ASORT",$JOB,SDNAME,SDOEDT)=$PIECE(^TMP("SCDX MTU",$JOB,DFN,SDOEI),U,2)_U_SDOEI_U_DFN_U_$PIECE(^TMP("SCDX MTU",$JOB,DFN,SDOEI),U,4)
- +12 SET ^TMP("SCDX MTU",$JOB,0,"FINAL CNT")=$GET(^TMP("SCDX MTU",$JOB,0,"FINAL CNT"))+1
- End DoDot:2
- End DoDot:1
- +13 SET ^TMP("SCDX MTU",$JOB,0,"END2")=$HOROLOG
- +14 QUIT
- +15 ;
- MAIL ; send message with report statistics
- +1 NEW MSG,XMSUB,XMY,XMTEXT,XMDUZ
- +2 ;
- +3 SET MSG(1)="Date Range for Report "_$$FMTE^XLFDT(SDBEG,2)_" to "_$$FMTE^XLFDT(SDEND,2)
- +4 SET MSG(2)=""
- +5 SET MSG(3)="Report Started "_$$HTE^XLFDT(^TMP("SCDX MTU",$JOB,0,"BEGIN"),2)
- +6 SET MSG(4)="Report Finished "_$$HTE^XLFDT(^TMP("SCDX MTU",$JOB,0,"END2"),2)
- +7 SET MSG(5)="Total Time for Report "_$$HDIFF^XLFDT(^TMP("SCDX MTU",$JOB,0,"END2"),^TMP("SCDX MTU",$JOB,0,"BEGIN"),3)
- +8 SET MSG(6)=""
- +9 SET MSG(7)="Outpatient Encounters Scanned "_$JUSTIFY($FNUMBER(+$GET(^TMP("SCDX MTU",$JOB,0,"CNT")),","),20)
- +10 SET MSG(8)="Outpatient Encounters Reported "_$JUSTIFY($FNUMBER(+$GET(^TMP("SCDX MTU",$JOB,0,"FINAL CNT")),","),20)
- +11 SET MSG(9)="Patient Count "_$JUSTIFY($FNUMBER(+$GET(^TMP("SCDX MTU",$JOB,0,"PATNUM")),","),20)
- +12 ;
- +13 SET XMSUB="MEANS TEST = 'U' REPORT STATISTICS"
- +14 SET XMTEXT="MSG("
- +15 SET XMY(DUZ)=""
- +16 SET XMDUZ="ACRP MT=U STATS"
- +17 DO ^XMD
- +18 QUIT
- +19 ;
- PRINT ; Print Report
- +1 ;SD*5.3*474 added SDFLAG and corresponding logic
- +2 NEW SDNAME,SDNODE,SDXNODE,SDOEI,SDOEX,SDOEDT,DFN,PRNTL4,VA,PAGE,SDFLAG
- +3 ;
- +4 SET PAGE=0
- +5 DO HDR
- +6 SET SDNAME=""
- +7 FOR
- SET SDNAME=$ORDER(^TMP("SCDX ASORT",$JOB,SDNAME))
- IF SDNAME']""
- QUIT
- Begin DoDot:1
- +8 WRITE !,$EXTRACT(SDNAME,1,30)
- +9 SET PRNTL4=0
- SET SDFLAG=1
- +10 SET SDOEDT=0
- +11 FOR
- SET SDOEDT=$ORDER(^TMP("SCDX ASORT",$JOB,SDNAME,SDOEDT))
- IF 'SDOEDT
- QUIT
- Begin DoDot:2
- +12 SET DFN=$PIECE($GET(^TMP("SCDX ASORT",$JOB,SDNAME,SDOEDT)),U,3)
- +13 SET SDOEX=$PIECE($GET(^TMP("SCDX ASORT",$JOB,SDNAME,SDOEDT)),U,1)
- +14 SET SDOEI=$PIECE($GET(^TMP("SCDX ASORT",$JOB,SDNAME,SDOEDT)),U,2)
- +15 IF 'PRNTL4
- Begin DoDot:3
- +16 DO PID^VADPT6
- +17 WRITE ?($LENGTH(SDNAME)+1),"(",VA("BID"),")"
- End DoDot:3
- SET PRNTL4=1
- +18 IF 'SDFLAG
- Begin DoDot:3
- +19 WRITE !,$EXTRACT(SDNAME,1,30)
- +20 DO PID^VADPT6
- +21 WRITE ?($LENGTH(SDNAME)+1),"(",VA("BID"),")"
- End DoDot:3
- SET SDFLAG=1
- +22 WRITE ?35,$$FMTE^XLFDT(SDOEDT,"D"),$SELECT(SDOEX>0:" *",1:" ")
- +23 WRITE ?56,$PIECE($GET(^TMP("SCDX ASORT",$JOB,SDNAME,SDOEDT)),U,4)
- +24 SET SDNODE=$GET(^SCE(SDOEI,0))
- +25 WRITE ?68,$EXTRACT($$GET1^DIQ(40.8,$PIECE(SDNODE,U,11),.01),1,30)
- +26 WRITE ?100,$EXTRACT($$GET1^DIQ(44,$PIECE(SDNODE,U,4),.01),1,30)
- +27 IF ($Y+5)>IOSL
- DO HDR
- SET SDFLAG=0
- QUIT
- +28 WRITE !
- End DoDot:2
- End DoDot:1
- +29 DO FTR1
- +30 QUIT
- +31 ;
- HDR ; Report Header
- +1 NEW SPACE,LINE,TAB,PRNTLN
- +2 ;
- +3 IF PAGE>0
- DO FTR
- +4 IF PAGE>0
- WRITE @IOF
- +5 SET PAGE=PAGE+1
- +6 ;
- +7 SET PRNTLN="Transmitted Outpatient Encounters with Means Test = 'U'"
- +8 SET TAB=(IOM-$LENGTH(PRNTLN))\2
- +9 WRITE !?TAB,PRNTLN
- +10 SET PRNTLN="Date Range: "_$$FMTE^XLFDT(SDBEG)_" thru "_$$FMTE^XLFDT(SDEND)
- +11 SET TAB=(IOM-$LENGTH(PRNTLN))\2
- +12 WRITE !!?TAB,PRNTLN
- +13 SET PRNTLN="Print Date: "_$$FMTE^XLFDT($$NOW^XLFDT)
- +14 SET TAB=(IOM-$LENGTH(PRNTLN))\2
- +15 WRITE !?TAB,PRNTLN
- +16 SET PRNTLN="Page: "_PAGE
- +17 SET TAB=(IOM-$LENGTH(PRNTLN))\2
- +18 WRITE !?TAB,PRNTLN
- +19 ;
- +20 WRITE !!?35,"Outpatient",?52,"",?68,"Medical Ctr"
- +21 WRITE !,"PATIENT NAME",?35,"Encounter Date",?52,"MT Indicator",?68,"Division",?100,"Clinic"
- +22 ;
- +23 SET $PIECE(LINE,"=",IOM)=""
- WRITE !,LINE
- +24 QUIT
- +25 ;
- FTR ; Report Footer
- +1 NEW SDX
- +2 ;
- +3 FOR SDX=$Y:1:IOSL-2
- WRITE !
- +4 WRITE ?5,"* - Transmitted Outpatient Encounter"
- +5 QUIT
- +6 ;
- FTR1 ;
- +1 WRITE !?5,"* - Transmitted Outpatient Encounter"
- +2 QUIT
- +3 ;