YS236PST ;ISP/LMT - Patch 236 Post-init ;Mar 28, 2025@08:35:41
;;5.01;MENTAL HEALTH;**236**;Dec 30, 1994;Build 25
;
;
; Reference to TIUFLF7 in ICR #5352
; Reference to ^XWB(8994.5, in ICR #5032
; Reference to ^DIC(19, in ICR #10075
;
Q
EDTDATE ; date used to update 601.71:18
;;3250423.1300
Q
;
PRE ; nothing necessary
Q
;
POST ; post-init
N YSPROM
D INSTALLQ^YTXCHG("XCHGLST","YS236PST")
S YSPROM=$O(^YTT(601.71,"B","PROMIS10",0))
I YSPROM D QTASK^YTSCOREV(YSPROM_"~2",$H)
D DDNOTE("CES") ;Add note titles to CES that were never set up
D UPDURL
D REMAPP ; Create MHA Remote Application entry
Q
;
DDNOTE(NAME) ; Add default note for this instrument
N IEN,NOTE,CSLT,REC,ALTNOTE,ALTCSLT
S IEN=$O(^YTT(601.71,"B",NAME,0)) Q:'IEN
Q:$P($G(^YTT(601.71,IEN,2)),U,2)'="Y" ; must be operational
;Q:$P($G(^YTT(601.71,IEN,8)),U,9)>0 ; note title already there
S NOTE=+$$DDEFIEN^TIUFLF7("MENTAL HEALTH DIAGNOSTIC STUDY NOTE","TL")
S CSLT=+$$DDEFIEN^TIUFLF7("MENTAL HEALTH CONSULT NOTE","TL")
S ALTNOTE=+$$DDEFIEN^TIUFLF7("MH DIAGNOSTIC STUDY NOTE","TL")
S ALTCSLT=+$$DDEFIEN^TIUFLF7("MH CONSULT NOTE","TL")
S:CSLT=0&(ALTCSLT'=0) CSLT=ALTCSLT
S:NOTE=0&(ALTNOTE'=0) NOTE=ALTNOTE
I 'NOTE,'CSLT QUIT ; neither title found
I NOTE'=0 S REC(29)=NOTE
I CSLT'=0 S REC(30)=CSLT
S REC(28)="Y"
D FMSAVE^YTXCHGI(1,601.71,.REC,IEN) ; FMSAVE in case dry run
D LOG^YTXCHGU("info","Linked note title.")
Q
;
SCREEN ; line to put in DATA SCREEN of KIDS build
; $$INCLUDE^YTXCHG(Y,"TAG","RTN") calls TAG^RTN to get an array of
; instrument exchange entries to include in the build. It sets Y
; to true if the entry should be included.
;
I $$INCLUDE^YTXCHG(Y,"XCHGLST","YS236PST")
Q
;
UPDURL ; Update GUI TOOLS URL for MHA Web
N LIST,PARM,ERR,ENT,INST,VAL,TITL,CMD,SPEC,NEWVAL
K ^TMP($J,"XPAR")
S LIST=$NA(^TMP($J,"XPAR"))
S PARM="ORWT TOOLS MENU"
D ENVAL^XPAR(LIST,PARM,"",.ERR,1)
S ^XTMP("YS236-TOOLS",0)=$$FMADD^XLFDT(DT,7)_U_DT_U_"MH Backup Tools Menu"
M ^XTMP("YS236-TOOLS","XPAR")=^TMP($J,"XPAR")
S SPEC("/home?")="/home/patch236/?",SPEC("/home/?")="/home/patch236/?" ;In case URL entered home/? Patch 236
S SPEC("/home/p254/?")="/home/patch236/?" ;Patch 236
S SPEC("/home/p236/?")="/home/patch236/?" ;Patch 236 RENAME
S ENT="" F S ENT=$O(^TMP($J,"XPAR",ENT)) Q:ENT="" D
. S INST=0 F S INST=$O(^TMP($J,"XPAR",ENT,INST)) Q:+INST=0 D
.. S VAL=^TMP($J,"XPAR",ENT,INST)
.. I (VAL["mha.domain.ext/app/home?"!(VAL["mha.domain.ext/app/home/")) D
... S TITL=$P(VAL,"="),CMD=$P(VAL,"=",2,99)
... S CMD=$$REPLACE^XLFSTR(CMD,.SPEC)
... S NEWVAL=TITL_"="_CMD
... D BMES^XPDUTL("Updating "_CMD_" for "_ENT)
... D EN^XPAR(ENT,PARM,INST,NEWVAL,.ERR)
K ^TMP($J,"XPAR")
Q
;
REMAPP ; Create MHA Remote Application entry
N YSERR,YSFDA,YSNAME,YSOPT,YSREMAPP,YSSTR
;
S YSSTR="Creating 'MENTAL HEALTH ASSISTANT' Remote Application (#8994.5) entry."
D BMES^XPDUTL(YSSTR)
;
S YSOPT=$$FIND1^DIC(19,"","X","YTQREST PATIENT ENTRY","B","","YSERR")
I YSOPT'>0 D QUIT
. S YSSTR="Error - could not create entry. Context option 'YTQREST PATIENT ENTRY' not found."
. D MES^XPDUTL(YSSTR)
;
S YSNAME="MENTAL HEALTH ASSISTANT"
S YSREMAPP=$$FIND1^DIC(8994.5,"","X",YSNAME,"B","","YSERR")
I YSREMAPP>0 D QUIT
. S YSSTR="Entry already exists."
. D MES^XPDUTL(YSSTR)
;
S YSFDA(8994.5,"?+1,",.01)=YSNAME
S YSFDA(8994.5,"?+1,",.02)=YSOPT
S YSFDA(8994.5,"?+1,",.03)="xJ7jaq1lDjrGo5iwfJrn3AqxOB8BZgHUB4QRESFTQew="
S YSFDA(8994.51,"?+2,?+1,",.01)="S"
S YSFDA(8994.51,"?+2,?+1,",.02)=-1
S YSFDA(8994.51,"?+2,?+1,",.03)="N/A"
S YSFDA(8994.51,"?+2,?+1,",.04)="N/A"
D UPDATE^DIE("","YSFDA","","YSERR")
I $D(YSERR) D
. S YSSTR="Error - FileMan error when creating entry ("_$G(YSERR)_")."
. D MES^XPDUTL(YSSTR)
Q
;
XCHGLST(ARRAY) ; return array of instrument exchange entries
; ARRAY(cnt,1)=instrument exchange entry name
; ARRAY(cnt,2)=instrument exchange entry creation date
;
N I,X
F I=1:1 S X=$P($T(ENTRIES+I),";;",2,99) Q:X="zzzzz" D
. S ARRAY(I,1)=$P(X,U)
. S ARRAY(I,2)=$P(X,U,2)
Q
;
ENTRIES ; New MHA instruments ^ Exchange Entry Date
;;YS*5.01*236 PSS-3^03/13/2025@14:55:48
;;YS*5.01*236 PSS-3-2ND^08/28/2024@16:01:48
;;YS*5.01*236 EPDS^11/06/2024@12:45:12
;;YS*5.01*236 PROMIS10^11/22/2024@11:57:09
;;YS*5.01*236 IADL^01/13/2025@14:13:21
;;YS*5.01*236 CCSA-DSM5^01/16/2025@17:55:10
;;YS*5.01*236 GAD-7^02/13/2025@15:34:13
;;YS*5.01*236 ZBI^02/18/2025@13:08:19
;;YS*5.01*236 SF36^03/13/2025@13:10:01
;;YS*5.01*236 ISS-2^03/18/2025@14:27:04
;;zzzzz
;
Q
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HYS236PST 4684 printed Aug 26, 2025@22:28:33 Page 2
YS236PST ;ISP/LMT - Patch 236 Post-init ;Mar 28, 2025@08:35:41
+1 ;;5.01;MENTAL HEALTH;**236**;Dec 30, 1994;Build 25
+2 ;
+3 ;
+4 ; Reference to TIUFLF7 in ICR #5352
+5 ; Reference to ^XWB(8994.5, in ICR #5032
+6 ; Reference to ^DIC(19, in ICR #10075
+7 ;
+8 QUIT
EDTDATE ; date used to update 601.71:18
+1 ;;3250423.1300
+2 QUIT
+3 ;
PRE ; nothing necessary
+1 QUIT
+2 ;
POST ; post-init
+1 NEW YSPROM
+2 DO INSTALLQ^YTXCHG("XCHGLST","YS236PST")
+3 SET YSPROM=$ORDER(^YTT(601.71,"B","PROMIS10",0))
+4 IF YSPROM
DO QTASK^YTSCOREV(YSPROM_"~2",$HOROLOG)
+5 ;Add note titles to CES that were never set up
DO DDNOTE("CES")
+6 DO UPDURL
+7 ; Create MHA Remote Application entry
DO REMAPP
+8 QUIT
+9 ;
DDNOTE(NAME) ; Add default note for this instrument
+1 NEW IEN,NOTE,CSLT,REC,ALTNOTE,ALTCSLT
+2 SET IEN=$ORDER(^YTT(601.71,"B",NAME,0))
if 'IEN
QUIT
+3 ; must be operational
if $PIECE($GET(^YTT(601.71,IEN,2)),U,2)'="Y"
QUIT
+4 ;Q:$P($G(^YTT(601.71,IEN,8)),U,9)>0 ; note title already there
+5 SET NOTE=+$$DDEFIEN^TIUFLF7("MENTAL HEALTH DIAGNOSTIC STUDY NOTE","TL")
+6 SET CSLT=+$$DDEFIEN^TIUFLF7("MENTAL HEALTH CONSULT NOTE","TL")
+7 SET ALTNOTE=+$$DDEFIEN^TIUFLF7("MH DIAGNOSTIC STUDY NOTE","TL")
+8 SET ALTCSLT=+$$DDEFIEN^TIUFLF7("MH CONSULT NOTE","TL")
+9 if CSLT=0&(ALTCSLT'=0)
SET CSLT=ALTCSLT
+10 if NOTE=0&(ALTNOTE'=0)
SET NOTE=ALTNOTE
+11 ; neither title found
IF 'NOTE
IF 'CSLT
QUIT
+12 IF NOTE'=0
SET REC(29)=NOTE
+13 IF CSLT'=0
SET REC(30)=CSLT
+14 SET REC(28)="Y"
+15 ; FMSAVE in case dry run
DO FMSAVE^YTXCHGI(1,601.71,.REC,IEN)
+16 DO LOG^YTXCHGU("info","Linked note title.")
+17 QUIT
+18 ;
SCREEN ; line to put in DATA SCREEN of KIDS build
+1 ; $$INCLUDE^YTXCHG(Y,"TAG","RTN") calls TAG^RTN to get an array of
+2 ; instrument exchange entries to include in the build. It sets Y
+3 ; to true if the entry should be included.
+4 ;
+5 IF $$INCLUDE^YTXCHG(Y,"XCHGLST","YS236PST")
+6 QUIT
+7 ;
UPDURL ; Update GUI TOOLS URL for MHA Web
+1 NEW LIST,PARM,ERR,ENT,INST,VAL,TITL,CMD,SPEC,NEWVAL
+2 KILL ^TMP($JOB,"XPAR")
+3 SET LIST=$NAME(^TMP($JOB,"XPAR"))
+4 SET PARM="ORWT TOOLS MENU"
+5 DO ENVAL^XPAR(LIST,PARM,"",.ERR,1)
+6 SET ^XTMP("YS236-TOOLS",0)=$$FMADD^XLFDT(DT,7)_U_DT_U_"MH Backup Tools Menu"
+7 MERGE ^XTMP("YS236-TOOLS","XPAR")=^TMP($JOB,"XPAR")
+8 ;In case URL entered home/? Patch 236
SET SPEC("/home?")="/home/patch236/?"
SET SPEC("/home/?")="/home/patch236/?"
+9 ;Patch 236
SET SPEC("/home/p254/?")="/home/patch236/?"
+10 ;Patch 236 RENAME
SET SPEC("/home/p236/?")="/home/patch236/?"
+11 SET ENT=""
FOR
SET ENT=$ORDER(^TMP($JOB,"XPAR",ENT))
if ENT=""
QUIT
Begin DoDot:1
+12 SET INST=0
FOR
SET INST=$ORDER(^TMP($JOB,"XPAR",ENT,INST))
if +INST=0
QUIT
Begin DoDot:2
+13 SET VAL=^TMP($JOB,"XPAR",ENT,INST)
+14 IF (VAL["mha.domain.ext/app/home?"!(VAL["mha.domain.ext/app/home/"))
Begin DoDot:3
+15 SET TITL=$PIECE(VAL,"=")
SET CMD=$PIECE(VAL,"=",2,99)
+16 SET CMD=$$REPLACE^XLFSTR(CMD,.SPEC)
+17 SET NEWVAL=TITL_"="_CMD
+18 DO BMES^XPDUTL("Updating "_CMD_" for "_ENT)
+19 DO EN^XPAR(ENT,PARM,INST,NEWVAL,.ERR)
End DoDot:3
End DoDot:2
End DoDot:1
+20 KILL ^TMP($JOB,"XPAR")
+21 QUIT
+22 ;
REMAPP ; Create MHA Remote Application entry
+1 NEW YSERR,YSFDA,YSNAME,YSOPT,YSREMAPP,YSSTR
+2 ;
+3 SET YSSTR="Creating 'MENTAL HEALTH ASSISTANT' Remote Application (#8994.5) entry."
+4 DO BMES^XPDUTL(YSSTR)
+5 ;
+6 SET YSOPT=$$FIND1^DIC(19,"","X","YTQREST PATIENT ENTRY","B","","YSERR")
+7 IF YSOPT'>0
Begin DoDot:1
+8 SET YSSTR="Error - could not create entry. Context option 'YTQREST PATIENT ENTRY' not found."
+9 DO MES^XPDUTL(YSSTR)
End DoDot:1
QUIT
+10 ;
+11 SET YSNAME="MENTAL HEALTH ASSISTANT"
+12 SET YSREMAPP=$$FIND1^DIC(8994.5,"","X",YSNAME,"B","","YSERR")
+13 IF YSREMAPP>0
Begin DoDot:1
+14 SET YSSTR="Entry already exists."
+15 DO MES^XPDUTL(YSSTR)
End DoDot:1
QUIT
+16 ;
+17 SET YSFDA(8994.5,"?+1,",.01)=YSNAME
+18 SET YSFDA(8994.5,"?+1,",.02)=YSOPT
+19 SET YSFDA(8994.5,"?+1,",.03)="xJ7jaq1lDjrGo5iwfJrn3AqxOB8BZgHUB4QRESFTQew="
+20 SET YSFDA(8994.51,"?+2,?+1,",.01)="S"
+21 SET YSFDA(8994.51,"?+2,?+1,",.02)=-1
+22 SET YSFDA(8994.51,"?+2,?+1,",.03)="N/A"
+23 SET YSFDA(8994.51,"?+2,?+1,",.04)="N/A"
+24 DO UPDATE^DIE("","YSFDA","","YSERR")
+25 IF $DATA(YSERR)
Begin DoDot:1
+26 SET YSSTR="Error - FileMan error when creating entry ("_$GET(YSERR)_")."
+27 DO MES^XPDUTL(YSSTR)
End DoDot:1
+28 QUIT
+29 ;
XCHGLST(ARRAY) ; return array of instrument exchange entries
+1 ; ARRAY(cnt,1)=instrument exchange entry name
+2 ; ARRAY(cnt,2)=instrument exchange entry creation date
+3 ;
+4 NEW I,X
+5 FOR I=1:1
SET X=$PIECE($TEXT(ENTRIES+I),";;",2,99)
if X="zzzzz"
QUIT
Begin DoDot:1
+6 SET ARRAY(I,1)=$PIECE(X,U)
+7 SET ARRAY(I,2)=$PIECE(X,U,2)
End DoDot:1
+8 QUIT
+9 ;
ENTRIES ; New MHA instruments ^ Exchange Entry Date
+1 ;;YS*5.01*236 PSS-3^03/13/2025@14:55:48
+2 ;;YS*5.01*236 PSS-3-2ND^08/28/2024@16:01:48
+3 ;;YS*5.01*236 EPDS^11/06/2024@12:45:12
+4 ;;YS*5.01*236 PROMIS10^11/22/2024@11:57:09
+5 ;;YS*5.01*236 IADL^01/13/2025@14:13:21
+6 ;;YS*5.01*236 CCSA-DSM5^01/16/2025@17:55:10
+7 ;;YS*5.01*236 GAD-7^02/13/2025@15:34:13
+8 ;;YS*5.01*236 ZBI^02/18/2025@13:08:19
+9 ;;YS*5.01*236 SF36^03/13/2025@13:10:01
+10 ;;YS*5.01*236 ISS-2^03/18/2025@14:27:04
+11 ;;zzzzz
+12 ;
+13 QUIT
+14 ;