- LRJSML ;ALB/GTS - Lab Vista Hospital Location Utilities;02/24/2010 11:00:25
- ;;5.2;LAB SERVICE;**425**;Sep 27, 1994;Build 30
- ;
- ;
- HDR ; -- header code
- SET VALMHDR(1)=" Lab Hospital Location Change Extract"
- SET VALMHDR(2)=" Version: "_$$VERNUM^LRJSMLU()_" Build: "_$$BLDNUM^LRJSMLU()
- Q
- ;
- INIT ;* init variables and list array
- N LRFROM,LRTO
- D CREATRPT(.LRFROM,.LRTO,"^TMP($J,""LRJ SYS"")")
- I (+$G(LRFROM)'>0)!(+$G(LRTO)'>0) DO
- . S VALMBCK="Q"
- . S VALMQUIT=1
- I (+$G(LRFROM)>0),(+$G(LRTO)>0) DO
- . D CLEAR(LRFROM,LRTO,"^TMP($J,""LRJ SYS"")")
- . D MSG
- QUIT
- ;
- CLEAR(LRFROM,LRTO,LRHLARY) ;* clean up entries
- DO REFRESH(LRFROM,LRTO,LRHLARY)
- QUIT
- ;
- MSG ; -- set default message
- N LREND,LRBEGIN,LRAUTMSG
- S LRBEGIN=$$GET^XPAR("SYS","LRJ HL LAST START DATE",1,"Q")
- S LREND=$$GET^XPAR("SYS","LRJ HL LAST END DATE",1,"Q")
- I (LRBEGIN'="")!(LREND'="") D
- .S LRAUTMSG="Task Rpt "_$S(LRBEGIN'="":$$FMTE^XLFDT(LRBEGIN),1:"undefined")_" - "_$S(LREND'="":$$FMTE^XLFDT(LREND),1:"undefined")
- ;
- I LRBEGIN="",LREND="" D
- .S LRAUTMSG="Tasked Report has not run!"
- S VALMSG=LRAUTMSG
- QUIT
- ;
- REFRESH(LRFROM,LRTO,LRHLARY) ;* refresh display
- DO BUILD(LRFROM,LRTO,LRHLARY)
- D MSG
- SET VALMBCK="R"
- SET VALMBG=1
- QUIT
- ;
- BUILD(LRFROM,LRTO,LRHLARY) ; -- build display array
- ;
- ;INPUT
- ; LRFROM - Start report date (Optional)
- ; LRTO - End report date (Optional)
- ; LRHLARY - Array of raw data extract (Required)
- ;
- QUIT:'$D(LRHLARY) ;QUIT if LRHLARY is not defined)
- ;
- NEW LRSTATUS,LRJERRCT,LRX
- DO KILL^VALM10()
- SET VALMCNT=0
- S LRX=" VistA Hospital Location changes"_$S($D(LRFROM):" from "_LRFROM,1:"")_$S($D(LRTO):" to "_LRTO,1:"")
- D ADD^LRJSMLU(.VALMCNT,LRX)
- DO CNTRL^VALM10(VALMCNT,1,$LENGTH(LRX)-1,IOUON,IOUOFF_IOINORM)
- ;
- D LISTHL(LRFROM,LRTO,LRHLARY)
- ;
- ;;D GETLINK^LRJSML1(.VALMCNT,$$GETLINK()) ;;If enhance send message HL MFN, see if can check link here.
- Q
- ;
- LISTHL(LRFROM,LRTO,LRHLARY) ; -- place Hospital Locations in the display array
- NEW X,NODE
- DO KILL^VALM10()
- SET VALMCNT=0
- SET X=" VistA Hospital Location changes"_$S($D(LRFROM):" from "_$$FMTE^XLFDT(LRFROM),1:"")_$S($D(LRTO):" to "_$$FMTE^XLFDT(LRTO),1:"")
- DO ADD^LRJSMLU(.VALMCNT,X)
- DO CNTRL^VALM10(VALMCNT,2,$LENGTH(X)-1,IOUON,IOUOFF_IOINORM)
- D ADD^LRJSMLU(.VALMCNT," ")
- SET NODE=0
- FOR SET NODE=$ORDER(@LRHLARY@(NODE)) QUIT:NODE="" DO
- . SET X=@LRHLARY@(NODE)
- . DO BREAK(.VALMCNT,X,NODE)
- QUIT
- ;
- BREAK(VALMCNT,X,NODE) ; -- break into 79/80 char chunks for display
- NEW LAOUT,LAX,SUBNODE,C
- SET C="" ; -- continuation character
- SET LAX=NODE_" : "_X
- DO ADD^LRJSMLU(.VALMCNT,C_$EXTRACT(LAX,1,80))
- SET C="+"
- SET LAOUT=$EXTRACT(LAX,81,159)
- IF $LENGTH(LAOUT)>0 DO ADD^LRJSMLU(.VALMCNT,C_LAOUT)
- SET LAOUT=$EXTRACT(LAX,160,239)
- IF $LENGTH(LAOUT)>0 DO ADD^LRJSMLU(.VALMCNT,C_LAOUT)
- SET LAOUT=$EXTRACT(LAX,240,255)
- IF $LENGTH(LAOUT)>0 DO ADD^LRJSMLU(.VALMCNT,C_LAOUT)
- QUIT
- ;
- ;
- CREATRPT(LRFROM,LRTO,LRHLARY) ;Create array of HL changes between selected dates
- N DIR
- ;
- W !!," Enter Hospital Location Extract Date Range...",!
- ;
- S LRFROM=$$DATEENT("Select Start date: ",,"-NOW")
- Q:+LRFROM<1
- S LRTO=$$DATEENT(" Select End date: ",LRFROM,"-NOW")
- Q:+LRTO<1
- D MSG
- ;
- ;Call Report API
- D BLDREC^LRJSMLA(LRFROM,LRTO,LRHLARY)
- ;
- Q
- ;
- DATEENT(LRPRMPT,LRBD,LRED) ;Prompt for extract date
- ;INPUT
- ; LRPRMPT - Prompt displayed to user
- ; LRBD - Begin date of range
- ; LRED - End date of range
- ;
- ;RETURN
- ; LRDT
- ; SUCCESS: FILEMAN INTERNALLY FORMATED DATE
- ; FAILURE: -1
- ;
- N LRDT,LRGOOD
- S LRGOOD=0
- S:+$G(LRED)>0 %DT(0)=LRED
- S:$G(LRED)["NOW" %DT(0)=LRED
- S %DT("A")=LRPRMPT
- S %DT("B")="TODAY" ;Default for [Start] date entry
- S %DT="AEPST"
- D:LRPRMPT["Start" ^%DT ;Prompt for Start date
- ;
- ;Prompt for End date with conditions
- I LRPRMPT["End" DO
- . F Q:LRGOOD DO
- . . S %DT("B")="NOW" ;Change default for End Date entry
- . . D ^%DT
- . . W:((Y<LRBD)&(X'="^")&('$D(DTOUT))) " ??",!," End date must follow Begin date!",!
- . . S:((Y>LRBD)!(Y=LRBD)!($D(DTOUT))!(X="^")) LRGOOD=1
- S LRDT=Y
- K Y,%DT
- Q LRDT
- ;
- DISPEXT(LRHLARY) ;Display Raw HL changes extracted
- ;
- ; This API will change the ListMan display array to a raw extract format
- ;INPUT
- ; LRHLARY - Array of raw extract data.
- ;
- NEW LRFROM,LRTO
- D HDR
- ;
- ;Pull date range of extract from ^TMP("LRJ SYS MAP HL INIT MGR",$JOB)
- D GETDATE^LRJSML8(.LRFROM,.LRTO)
- IF (+LRFROM=0)!(+LRTO=0) DO
- .SET LRFROM=$P($G(^TMP("LRJ SYS USER MANAGER - DATES",$JOB)),"^")
- .SET LRTO=$P($G(^TMP("LRJ SYS USER MANAGER - DATES",$JOB)),"^",2)
- SET ^TMP("LRJ SYS USER MANAGER - DATES",$JOB)=LRFROM_"^"_LRTO
- KILL ^TMP("LRJ SYS MAP HL INIT MGR",$JOB)
- D REFRESH(LRFROM,LRTO,LRHLARY)
- D MSG
- S VALMBCK="R"
- S VALMBG=1
- Q
- ;
- MMHDR ; -- header code for Mail Message display
- SET VALMHDR(1)=" Lab Hospital Location Change Message"
- SET VALMHDR(2)=" Version: "_$$VERNUM^LRJSMLU()_" Build: "_$$BLDNUM^LRJSMLU()
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRJSML 5116 printed Feb 18, 2025@23:41:31 Page 2
- LRJSML ;ALB/GTS - Lab Vista Hospital Location Utilities;02/24/2010 11:00:25
- +1 ;;5.2;LAB SERVICE;**425**;Sep 27, 1994;Build 30
- +2 ;
- +3 ;
- HDR ; -- header code
- +1 SET VALMHDR(1)=" Lab Hospital Location Change Extract"
- +2 SET VALMHDR(2)=" Version: "_$$VERNUM^LRJSMLU()_" Build: "_$$BLDNUM^LRJSMLU()
- +3 QUIT
- +4 ;
- INIT ;* init variables and list array
- +1 NEW LRFROM,LRTO
- +2 DO CREATRPT(.LRFROM,.LRTO,"^TMP($J,""LRJ SYS"")")
- +3 IF (+$GET(LRFROM)'>0)!(+$GET(LRTO)'>0)
- Begin DoDot:1
- +4 SET VALMBCK="Q"
- +5 SET VALMQUIT=1
- End DoDot:1
- +6 IF (+$GET(LRFROM)>0)
- IF (+$GET(LRTO)>0)
- Begin DoDot:1
- +7 DO CLEAR(LRFROM,LRTO,"^TMP($J,""LRJ SYS"")")
- +8 DO MSG
- End DoDot:1
- +9 QUIT
- +10 ;
- CLEAR(LRFROM,LRTO,LRHLARY) ;* clean up entries
- +1 DO REFRESH(LRFROM,LRTO,LRHLARY)
- +2 QUIT
- +3 ;
- MSG ; -- set default message
- +1 NEW LREND,LRBEGIN,LRAUTMSG
- +2 SET LRBEGIN=$$GET^XPAR("SYS","LRJ HL LAST START DATE",1,"Q")
- +3 SET LREND=$$GET^XPAR("SYS","LRJ HL LAST END DATE",1,"Q")
- +4 IF (LRBEGIN'="")!(LREND'="")
- Begin DoDot:1
- +5 SET LRAUTMSG="Task Rpt "_$SELECT(LRBEGIN'="":$$FMTE^XLFDT(LRBEGIN),1:"undefined")_" - "_$SELECT(LREND'="":$$FMTE^XLFDT(LREND),1:"undefined")
- End DoDot:1
- +6 ;
- +7 IF LRBEGIN=""
- IF LREND=""
- Begin DoDot:1
- +8 SET LRAUTMSG="Tasked Report has not run!"
- End DoDot:1
- +9 SET VALMSG=LRAUTMSG
- +10 QUIT
- +11 ;
- REFRESH(LRFROM,LRTO,LRHLARY) ;* refresh display
- +1 DO BUILD(LRFROM,LRTO,LRHLARY)
- +2 DO MSG
- +3 SET VALMBCK="R"
- +4 SET VALMBG=1
- +5 QUIT
- +6 ;
- BUILD(LRFROM,LRTO,LRHLARY) ; -- build display array
- +1 ;
- +2 ;INPUT
- +3 ; LRFROM - Start report date (Optional)
- +4 ; LRTO - End report date (Optional)
- +5 ; LRHLARY - Array of raw data extract (Required)
- +6 ;
- +7 ;QUIT if LRHLARY is not defined)
- if '$DATA(LRHLARY)
- QUIT
- +8 ;
- +9 NEW LRSTATUS,LRJERRCT,LRX
- +10 DO KILL^VALM10()
- +11 SET VALMCNT=0
- +12 SET LRX=" VistA Hospital Location changes"_$SELECT($DATA(LRFROM):" from "_LRFROM,1:"")_$SELECT($DATA(LRTO):" to "_LRTO,1:"")
- +13 DO ADD^LRJSMLU(.VALMCNT,LRX)
- +14 DO CNTRL^VALM10(VALMCNT,1,$LENGTH(LRX)-1,IOUON,IOUOFF_IOINORM)
- +15 ;
- +16 DO LISTHL(LRFROM,LRTO,LRHLARY)
- +17 ;
- +18 ;;D GETLINK^LRJSML1(.VALMCNT,$$GETLINK()) ;;If enhance send message HL MFN, see if can check link here.
- +19 QUIT
- +20 ;
- LISTHL(LRFROM,LRTO,LRHLARY) ; -- place Hospital Locations in the display array
- +1 NEW X,NODE
- +2 DO KILL^VALM10()
- +3 SET VALMCNT=0
- +4 SET X=" VistA Hospital Location changes"_$SELECT($DATA(LRFROM):" from "_$$FMTE^XLFDT(LRFROM),1:"")_$SELECT($DATA(LRTO):" to "_$$FMTE^XLFDT(LRTO),1:"")
- +5 DO ADD^LRJSMLU(.VALMCNT,X)
- +6 DO CNTRL^VALM10(VALMCNT,2,$LENGTH(X)-1,IOUON,IOUOFF_IOINORM)
- +7 DO ADD^LRJSMLU(.VALMCNT," ")
- +8 SET NODE=0
- +9 FOR
- SET NODE=$ORDER(@LRHLARY@(NODE))
- if NODE=""
- QUIT
- Begin DoDot:1
- +10 SET X=@LRHLARY@(NODE)
- +11 DO BREAK(.VALMCNT,X,NODE)
- End DoDot:1
- +12 QUIT
- +13 ;
- BREAK(VALMCNT,X,NODE) ; -- break into 79/80 char chunks for display
- +1 NEW LAOUT,LAX,SUBNODE,C
- +2 ; -- continuation character
- SET C=""
- +3 SET LAX=NODE_" : "_X
- +4 DO ADD^LRJSMLU(.VALMCNT,C_$EXTRACT(LAX,1,80))
- +5 SET C="+"
- +6 SET LAOUT=$EXTRACT(LAX,81,159)
- +7 IF $LENGTH(LAOUT)>0
- DO ADD^LRJSMLU(.VALMCNT,C_LAOUT)
- +8 SET LAOUT=$EXTRACT(LAX,160,239)
- +9 IF $LENGTH(LAOUT)>0
- DO ADD^LRJSMLU(.VALMCNT,C_LAOUT)
- +10 SET LAOUT=$EXTRACT(LAX,240,255)
- +11 IF $LENGTH(LAOUT)>0
- DO ADD^LRJSMLU(.VALMCNT,C_LAOUT)
- +12 QUIT
- +13 ;
- +14 ;
- CREATRPT(LRFROM,LRTO,LRHLARY) ;Create array of HL changes between selected dates
- +1 NEW DIR
- +2 ;
- +3 WRITE !!," Enter Hospital Location Extract Date Range...",!
- +4 ;
- +5 SET LRFROM=$$DATEENT("Select Start date: ",,"-NOW")
- +6 if +LRFROM<1
- QUIT
- +7 SET LRTO=$$DATEENT(" Select End date: ",LRFROM,"-NOW")
- +8 if +LRTO<1
- QUIT
- +9 DO MSG
- +10 ;
- +11 ;Call Report API
- +12 DO BLDREC^LRJSMLA(LRFROM,LRTO,LRHLARY)
- +13 ;
- +14 QUIT
- +15 ;
- DATEENT(LRPRMPT,LRBD,LRED) ;Prompt for extract date
- +1 ;INPUT
- +2 ; LRPRMPT - Prompt displayed to user
- +3 ; LRBD - Begin date of range
- +4 ; LRED - End date of range
- +5 ;
- +6 ;RETURN
- +7 ; LRDT
- +8 ; SUCCESS: FILEMAN INTERNALLY FORMATED DATE
- +9 ; FAILURE: -1
- +10 ;
- +11 NEW LRDT,LRGOOD
- +12 SET LRGOOD=0
- +13 if +$GET(LRED)>0
- SET %DT(0)=LRED
- +14 if $GET(LRED)["NOW"
- SET %DT(0)=LRED
- +15 SET %DT("A")=LRPRMPT
- +16 ;Default for [Start] date entry
- SET %DT("B")="TODAY"
- +17 SET %DT="AEPST"
- +18 ;Prompt for Start date
- if LRPRMPT["Start"
- DO ^%DT
- +19 ;
- +20 ;Prompt for End date with conditions
- +21 IF LRPRMPT["End"
- Begin DoDot:1
- +22 FOR
- if LRGOOD
- QUIT
- Begin DoDot:2
- +23 ;Change default for End Date entry
- SET %DT("B")="NOW"
- +24 DO ^%DT
- +25 if ((Y<LRBD)&(X'="^")&('$DATA(DTOUT)))
- WRITE " ??",!," End date must follow Begin date!",!
- +26 if ((Y>LRBD)!(Y=LRBD)!($DATA(DTOUT))!(X="^"))
- SET LRGOOD=1
- End DoDot:2
- End DoDot:1
- +27 SET LRDT=Y
- +28 KILL Y,%DT
- +29 QUIT LRDT
- +30 ;
- DISPEXT(LRHLARY) ;Display Raw HL changes extracted
- +1 ;
- +2 ; This API will change the ListMan display array to a raw extract format
- +3 ;INPUT
- +4 ; LRHLARY - Array of raw extract data.
- +5 ;
- +6 NEW LRFROM,LRTO
- +7 DO HDR
- +8 ;
- +9 ;Pull date range of extract from ^TMP("LRJ SYS MAP HL INIT MGR",$JOB)
- +10 DO GETDATE^LRJSML8(.LRFROM,.LRTO)
- +11 IF (+LRFROM=0)!(+LRTO=0)
- Begin DoDot:1
- +12 SET LRFROM=$PIECE($GET(^TMP("LRJ SYS USER MANAGER - DATES",$JOB)),"^")
- +13 SET LRTO=$PIECE($GET(^TMP("LRJ SYS USER MANAGER - DATES",$JOB)),"^",2)
- End DoDot:1
- +14 SET ^TMP("LRJ SYS USER MANAGER - DATES",$JOB)=LRFROM_"^"_LRTO
- +15 KILL ^TMP("LRJ SYS MAP HL INIT MGR",$JOB)
- +16 DO REFRESH(LRFROM,LRTO,LRHLARY)
- +17 DO MSG
- +18 SET VALMBCK="R"
- +19 SET VALMBG=1
- +20 QUIT
- +21 ;
- MMHDR ; -- header code for Mail Message display
- +1 SET VALMHDR(1)=" Lab Hospital Location Change Message"
- +2 SET VALMHDR(2)=" Version: "_$$VERNUM^LRJSMLU()_" Build: "_$$BLDNUM^LRJSMLU()
- +3 QUIT