- SD53103B ;ALB/MJK - Unique Visit ID Clean Up ; March 10,1997
- ;;5.3;Scheduling;**103,1015**;AUG 13, 1993;Build 21
- ;
- Q
- ;
- OE(SDOE) ; -- display oe data
- N DIQ,DIC,DR,DA,SDLINE
- S $P(SDLINE,"=",80)=""
- W !,SDLINE,!
- S DIC="^SCE(",DA=SDOE,DIQ(0)="CAR" D EN^DIQ
- W !,SDLINE,!
- Q
- ;
- HDR(TEXT) ; -- intro header
- N X
- S X=">>>> Encounter Clean Up Tool for -1 Visit ID's ["_TEXT_"] <<<<"
- S T=(80-$L(X))/2
- W @IOF,!?T,X
- Q
- ;
- INIT() ; -- init global locals
- N SDOK
- D HOME^%ZIS
- S SDOK=1,U="^",SDTALK=0
- IF '$G(DT) S DT=$$DT^XLFDT()
- ;
- IF '$G(DUZ) D G INITQ
- . W !,"DUZ is not defined."
- . S SDOK=0
- ;
- IF '$O(^DIC(9.4,"C","SD",0)) D G INITQ
- . W !,"No package with 'SD' namespace exists on the system."
- . S SDOK=0
- ELSE D
- . S SDPKG=$O(^DIC(9.4,"C","SD",0))
- ;
- INITQ Q SDOK
- ;
- RESULTS(SDMODE,SDBEG,SDEND,SDRT,SDCNT) ; generate an e-mail bulletin when done
- N DIFROM,I,LINE,X
- S SDCOUNT=0
- D LINE("The Unique Visit ID cleanup has run to completion."),LINE("")
- D LINE(" Start Time: "_$$FMTE^XLFDT(SDBEG))
- D LINE(" End Time: "_$$FMTE^XLFDT(SDEND))
- D LINE(" Run Mode: "_$S(SDMODE=1:"Count Only",1:"Fix Entries")),LINE("")
- IF $$S^%ZTLOAD D
- . D LINE(" >>> Task Stopped by user. <<<")
- . D LINE("")
- . S ZTSTOP=1
- ;
- D LINE("Total number of Outpatient Encounter entries "_$S(SDMODE=1:"that will be ",1:"")_"processed: "_SDCNT),LINE(""),LINE("")
- ;
- IF SDMODE=2 D
- . D LINE("Note: Child encounters re-linked as part of parent")
- . D LINE(" re-linking process are not listed below nor")
- . D LINE(" counted in the total above.")
- . D LINE("")
- ;
- ; -- layout of line
- D LINE("Message Format:")
- D LINE(" Piece Description")
- D LINE(" ----- -----------")
- D LINE(" 1 Status of update")
- D LINE(" 2 Internal Entry Number of Outpatient Encounter file")
- D LINE(" 3 Internal Entry Number of Parent Outpatient Encounter file")
- D LINE(" 4 Internal Entry Number of Visit file")
- D LINE(" 5 Patient Name")
- D LINE(" 6 Encounter Date/Time")
- D LINE(" 7 Hospital Location")
- D LINE("")
- ;
- ; --scan tmp records
- F I=0:0 S I=$O(@SDRT@(I)) Q:'I D
- . D LINE(@SDRT@(I))
- ;
- ; -- set up and fire bulletin
- S XMSUB="Unique Visit ID Cleanup is Complete",XMN=0
- S XMTEXT="^TMP(""SDVISIT MSG"",$J,"
- S XMDUZ=.5,XMY(DUZ)=""
- D ^XMD
- K ^TMP("SDVISIT MSG",$J)
- K SDCOUNT,SDTEXT,XMDUZ,XMN,XMSUB,XMTEXT,XMY,XMZ
- Q
- ;
- ;
- LINE(TEXT) ; add text to mail message
- S SDCOUNT=SDCOUNT+1,^TMP("SDVISIT MSG",$J,SDCOUNT)=TEXT
- Q
- ;
- RANGE(SDBEG,SDEND) ; -- select range
- N SDWITCH,SDT,X1,X2,X,DIR
- S (SDBEG,SDEND)=0,SDT=2961001
- S DIR("B")=$$FDATE^VALM1(SDT)
- S DIR(0)="DA"_U_SDT_":"_DT_":EXP",DIR("A")="Select Beginning Date: "
- S DIR("?",1)="Enter a date between "_$$FMTE^XLFDT(SDT)_" to "_$$FMTE^XLFDT(DT)_".",DIR("?")=" "
- W ! D ^DIR K DIR G RANGEQ:Y'>0 S SDBEG=Y
- S DIR("B")=$$FDATE^VALM1(DT)
- S DIR(0)="DA"_U_SDBEG_":"_DT_":EXP",DIR("A")="Select Ending Date: "
- S DIR("?",1)="Enter a date between "_$$FMTE^XLFDT(SDBEG)_" to "_$$FMTE^XLFDT(DT)_".",DIR("?")=" "
- D ^DIR K DIR G RANGEQ:Y'>0 S SDEND=Y_".235959"
- RANGEQ Q SDEND
- ;
- OK() ; -- ok to continue
- N DIR,Y
- S DIR("A")="Ok to continue"
- S DIR("B")="NO"
- S DIR(0)="Y"
- D ^DIR
- IF Y'=1 S Y=0
- Q Y
- ;
- MODE() ; -- select update mode
- N DIR,Y
- S DIR(0)="S"_U_"1:Count Only;2:Fix Entries"
- S DIR("A")="Select update mode"
- S DIR("B")="Count Only"
- D ^DIR
- IF Y'=1,Y'=2 S Y=0
- Q Y
- ;
- SD53103B ;ALB/MJK - Unique Visit ID Clean Up ; March 10,1997
- +1 ;;5.3;Scheduling;**103,1015**;AUG 13, 1993;Build 21
- +2 ;
- +3 QUIT
- +4 ;
- OE(SDOE) ; -- display oe data
- +1 NEW DIQ,DIC,DR,DA,SDLINE
- +2 SET $PIECE(SDLINE,"=",80)=""
- +3 WRITE !,SDLINE,!
- +4 SET DIC="^SCE("
- SET DA=SDOE
- SET DIQ(0)="CAR"
- DO EN^DIQ
- +5 WRITE !,SDLINE,!
- +6 QUIT
- +7 ;
- HDR(TEXT) ; -- intro header
- +1 NEW X
- +2 SET X=">>>> Encounter Clean Up Tool for -1 Visit ID's ["_TEXT_"] <<<<"
- +3 SET T=(80-$LENGTH(X))/2
- +4 WRITE @IOF,!?T,X
- +5 QUIT
- +6 ;
- INIT() ; -- init global locals
- +1 NEW SDOK
- +2 DO HOME^%ZIS
- +3 SET SDOK=1
- SET U="^"
- SET SDTALK=0
- +4 IF '$GET(DT)
- SET DT=$$DT^XLFDT()
- +5 ;
- +6 IF '$GET(DUZ)
- Begin DoDot:1
- +7 WRITE !,"DUZ is not defined."
- +8 SET SDOK=0
- End DoDot:1
- GOTO INITQ
- +9 ;
- +10 IF '$ORDER(^DIC(9.4,"C","SD",0))
- Begin DoDot:1
- +11 WRITE !,"No package with 'SD' namespace exists on the system."
- +12 SET SDOK=0
- End DoDot:1
- GOTO INITQ
- +13 IF '$TEST
- Begin DoDot:1
- +14 SET SDPKG=$ORDER(^DIC(9.4,"C","SD",0))
- End DoDot:1
- +15 ;
- INITQ QUIT SDOK
- +1 ;
- RESULTS(SDMODE,SDBEG,SDEND,SDRT,SDCNT) ; generate an e-mail bulletin when done
- +1 NEW DIFROM,I,LINE,X
- +2 SET SDCOUNT=0
- +3 DO LINE("The Unique Visit ID cleanup has run to completion.")
- DO LINE("")
- +4 DO LINE(" Start Time: "_$$FMTE^XLFDT(SDBEG))
- +5 DO LINE(" End Time: "_$$FMTE^XLFDT(SDEND))
- +6 DO LINE(" Run Mode: "_$SELECT(SDMODE=1:"Count Only",1:"Fix Entries"))
- DO LINE("")
- +7 IF $$S^%ZTLOAD
- Begin DoDot:1
- +8 DO LINE(" >>> Task Stopped by user. <<<")
- +9 DO LINE("")
- +10 SET ZTSTOP=1
- End DoDot:1
- +11 ;
- +12 DO LINE("Total number of Outpatient Encounter entries "_$SELECT(SDMODE=1:"that will be ",1:"")_"processed: "_SDCNT)
- DO LINE("")
- DO LINE("")
- +13 ;
- +14 IF SDMODE=2
- Begin DoDot:1
- +15 DO LINE("Note: Child encounters re-linked as part of parent")
- +16 DO LINE(" re-linking process are not listed below nor")
- +17 DO LINE(" counted in the total above.")
- +18 DO LINE("")
- End DoDot:1
- +19 ;
- +20 ; -- layout of line
- +21 DO LINE("Message Format:")
- +22 DO LINE(" Piece Description")
- +23 DO LINE(" ----- -----------")
- +24 DO LINE(" 1 Status of update")
- +25 DO LINE(" 2 Internal Entry Number of Outpatient Encounter file")
- +26 DO LINE(" 3 Internal Entry Number of Parent Outpatient Encounter file")
- +27 DO LINE(" 4 Internal Entry Number of Visit file")
- +28 DO LINE(" 5 Patient Name")
- +29 DO LINE(" 6 Encounter Date/Time")
- +30 DO LINE(" 7 Hospital Location")
- +31 DO LINE("")
- +32 ;
- +33 ; --scan tmp records
- +34 FOR I=0:0
- SET I=$ORDER(@SDRT@(I))
- IF 'I
- QUIT
- Begin DoDot:1
- +35 DO LINE(@SDRT@(I))
- End DoDot:1
- +36 ;
- +37 ; -- set up and fire bulletin
- +38 SET XMSUB="Unique Visit ID Cleanup is Complete"
- SET XMN=0
- +39 SET XMTEXT="^TMP(""SDVISIT MSG"",$J,"
- +40 SET XMDUZ=.5
- SET XMY(DUZ)=""
- +41 DO ^XMD
- +42 KILL ^TMP("SDVISIT MSG",$JOB)
- +43 KILL SDCOUNT,SDTEXT,XMDUZ,XMN,XMSUB,XMTEXT,XMY,XMZ
- +44 QUIT
- +45 ;
- +46 ;
- LINE(TEXT) ; add text to mail message
- +1 SET SDCOUNT=SDCOUNT+1
- SET ^TMP("SDVISIT MSG",$JOB,SDCOUNT)=TEXT
- +2 QUIT
- +3 ;
- RANGE(SDBEG,SDEND) ; -- select range
- +1 NEW SDWITCH,SDT,X1,X2,X,DIR
- +2 SET (SDBEG,SDEND)=0
- SET SDT=2961001
- +3 SET DIR("B")=$$FDATE^VALM1(SDT)
- +4 SET DIR(0)="DA"_U_SDT_":"_DT_":EXP"
- SET DIR("A")="Select Beginning Date: "
- +5 SET DIR("?",1)="Enter a date between "_$$FMTE^XLFDT(SDT)_" to "_$$FMTE^XLFDT(DT)_"."
- SET DIR("?")=" "
- +6 WRITE !
- DO ^DIR
- KILL DIR
- IF Y'>0
- GOTO RANGEQ
- SET SDBEG=Y
- +7 SET DIR("B")=$$FDATE^VALM1(DT)
- +8 SET DIR(0)="DA"_U_SDBEG_":"_DT_":EXP"
- SET DIR("A")="Select Ending Date: "
- +9 SET DIR("?",1)="Enter a date between "_$$FMTE^XLFDT(SDBEG)_" to "_$$FMTE^XLFDT(DT)_"."
- SET DIR("?")=" "
- +10 DO ^DIR
- KILL DIR
- IF Y'>0
- GOTO RANGEQ
- SET SDEND=Y_".235959"
- RANGEQ QUIT SDEND
- +1 ;
- OK() ; -- ok to continue
- +1 NEW DIR,Y
- +2 SET DIR("A")="Ok to continue"
- +3 SET DIR("B")="NO"
- +4 SET DIR(0)="Y"
- +5 DO ^DIR
- +6 IF Y'=1
- SET Y=0
- +7 QUIT Y
- +8 ;
- MODE() ; -- select update mode
- +1 NEW DIR,Y
- +2 SET DIR(0)="S"_U_"1:Count Only;2:Fix Entries"
- +3 SET DIR("A")="Select update mode"
- +4 SET DIR("B")="Count Only"
- +5 DO ^DIR
- +6 IF Y'=1
- IF Y'=2
- SET Y=0
- +7 QUIT Y
- +8 ;