- YTXCHGP ;SLC/KCM - MH Exchange Prompting ; 9/15/2015
- ;;5.01;MENTAL HEALTH;**121**;Dec 30, 1994;Build 61
- ;
- LKUP(FILE) ; Lookup Mental Health Instrument & return IEN
- ; returns IEN, 0 for no selection, -1 for up-arrow or timeout
- N DIC,X,Y,DTOUT,DUOUT
- S DIC=FILE,DIC(0)="AEMQ" D ^DIC
- S:Y<1 Y=0 S:$G(DUOUT)!$G(DTOUT) Y=-1
- Q +Y
- ;
- LIST(FILE,ENTRIES) ; Lookup in File to make list of ENTRIES
- ;.ENTRIES=total
- ;.ENTRIES(n)=ien
- N I,IEN
- S ENTRIES=0
- F I=1:1 S IEN=$$LKUP(FILE) Q:IEN<1 S ENTRIES=I,ENTRIES(I)=IEN
- I IEN<0 K ENTRIES S ENTRIES=0 ; ^out or timeout
- Q
- PRMTNAME(ASK,HELP,MAX) ; Prompt using ASK and return text or ""
- N DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT
- S MAX=$G(MAX,64)
- S DIR(0)="FO^3:"_MAX,DIR("A")=ASK S:$L($G(HELP)) DIR("?")=HELP
- D ^DIR
- I $D(DTOUT)!$D(DUOUT)!$D(DIRUT)!$D(DIROUT) S Y=""
- S Y=$$TRIM^XLFSTR(Y)
- Q Y
- ;
- CONFIRM(ASK,DFLT) ; return true if user confirms
- N DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT
- S DIR(0)="YA",DIR("A")=ASK,DIR("B")=$G(DFLT,"YES")
- D ^DIR
- I $G(DUOUT)!$G(DTOUT) S Y=-1
- Q +Y
- ;
- PAUSE() ; prompt user for return to continue
- N DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT
- S DIR(0)="EA",DIR("A")="Press return to continue..."
- D ^DIR
- Q
- EDITWP(INSTRUCT,DEST) ; Edit word processing text in DEST
- ; INSTRUCT: instructions to user
- ; DEST: global reference for WP text
- I $E($RE(DEST))=")" S $E(DEST,$L(DEST))=","
- W !,INSTRUCT," --"
- N DIC,DDWFLAGS,DWLW,DWPK
- N I,J,X,X1 ; variables that DIWE seems to leave around
- S DIC=DEST,DDWFLAGS="Q",DWLW=72,DWPK=1
- D EN^DIWE
- I '$D(@(DEST_"1,0)")) D
- . S @(DEST_"0)")="^^1^1^"_DT_"^"
- . S @(DEST_"1,0)")="(no description)"
- Q
- PICKTEST(TREE) ; Return a string of instruments selected]
- N I,X,T,TESTS
- S I=0 F S I=$O(@TREE@("test",I)) Q:'I D
- . S TESTS=I
- . S TESTS(I)=@TREE@("test",I,"info","name")
- . S TESTS("B",$$LOW^XLFSTR(TESTS(I)))=I
- I TESTS=1 Q 1 ; no prompting if only 1 tests
- ;
- F D Q:X'["?"
- . D TESTLIST
- . W !!,"Choose instrument to browse: "
- . R X:DTIME S:$E(X)="^" X="" Q:X=""
- . S X=$$LOW^XLFSTR(X)
- . I +X,$D(TESTS(X)) Q ; number entered
- . I $D(TESTS("B",X)) S X=TESTS("B",X) Q ; full name entered
- . S T=$O(TESTS("B",X)) ; partial name entered
- . I X=$E(T,1,$L(X)) W " ",T S X=TESTS("B",T) Q
- . W " ??",! S X="?" ; no match
- Q X
- ;
- TESTLIST ; Show a list of tests
- ; expects TESTS,TREE from PICKTEST
- W !,"Instruments contained in ",@TREE@("xchg","name")," are:"
- S I=0 F S I=$O(TESTS(I)) Q:'I W !,$J(I,4),?7,TESTS(I)
- Q
- SHOSUMM(YTXLOG,YTXDRY) ; Display summary log information
- ; may be called during KIDS build, so uses MES^XPDUTL
- N MSG
- I $G(YTXLOG("conflict")) D
- . N I S I=0 F S I=$O(YTXLOG("conflict",I)) Q:'I D
- . . S MSG="Conflict -- "_YTXLOG("conflict",I)
- . . D MES^XPDUTL(MSG)
- . S MSG="Conflicts with existing instruments prevent installation."
- . D LOG^YTXCHGU("error",MSG)
- . S MSG="Contact national support to resolve the conflicts."
- . D MES^XPDUTL(MSG)
- S MSG=" "_$G(YTXLOG("added"),0)_" records "_$S(YTXDRY:"would be ",1:"")_"added."
- D MES^XPDUTL(MSG)
- S MSG=" "_$G(YTXLOG("updated"),0)_" records "_$S(YTXDRY:"would be ",1:"")_"updated."
- D MES^XPDUTL(MSG)
- S MSG=" "_$G(YTXLOG("deleted"),0)_" records "_$S(YTXDRY:"would be ",1:"")_"deleted."
- D MES^XPDUTL(MSG)
- S MSG=" "_$G(YTXLOG("error"),0)_" errors."
- D MES^XPDUTL(MSG)
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HYTXCHGP 3413 printed Feb 18, 2025@23:48:26 Page 2
- YTXCHGP ;SLC/KCM - MH Exchange Prompting ; 9/15/2015
- +1 ;;5.01;MENTAL HEALTH;**121**;Dec 30, 1994;Build 61
- +2 ;
- LKUP(FILE) ; Lookup Mental Health Instrument & return IEN
- +1 ; returns IEN, 0 for no selection, -1 for up-arrow or timeout
- +2 NEW DIC,X,Y,DTOUT,DUOUT
- +3 SET DIC=FILE
- SET DIC(0)="AEMQ"
- DO ^DIC
- +4 if Y<1
- SET Y=0
- if $GET(DUOUT)!$GET(DTOUT)
- SET Y=-1
- +5 QUIT +Y
- +6 ;
- LIST(FILE,ENTRIES) ; Lookup in File to make list of ENTRIES
- +1 ;.ENTRIES=total
- +2 ;.ENTRIES(n)=ien
- +3 NEW I,IEN
- +4 SET ENTRIES=0
- +5 FOR I=1:1
- SET IEN=$$LKUP(FILE)
- if IEN<1
- QUIT
- SET ENTRIES=I
- SET ENTRIES(I)=IEN
- +6 ; ^out or timeout
- IF IEN<0
- KILL ENTRIES
- SET ENTRIES=0
- +7 QUIT
- PRMTNAME(ASK,HELP,MAX) ; Prompt using ASK and return text or ""
- +1 NEW DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT
- +2 SET MAX=$GET(MAX,64)
- +3 SET DIR(0)="FO^3:"_MAX
- SET DIR("A")=ASK
- if $LENGTH($GET(HELP))
- SET DIR("?")=HELP
- +4 DO ^DIR
- +5 IF $DATA(DTOUT)!$DATA(DUOUT)!$DATA(DIRUT)!$DATA(DIROUT)
- SET Y=""
- +6 SET Y=$$TRIM^XLFSTR(Y)
- +7 QUIT Y
- +8 ;
- CONFIRM(ASK,DFLT) ; return true if user confirms
- +1 NEW DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT
- +2 SET DIR(0)="YA"
- SET DIR("A")=ASK
- SET DIR("B")=$GET(DFLT,"YES")
- +3 DO ^DIR
- +4 IF $GET(DUOUT)!$GET(DTOUT)
- SET Y=-1
- +5 QUIT +Y
- +6 ;
- PAUSE() ; prompt user for return to continue
- +1 NEW DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT
- +2 SET DIR(0)="EA"
- SET DIR("A")="Press return to continue..."
- +3 DO ^DIR
- +4 QUIT
- EDITWP(INSTRUCT,DEST) ; Edit word processing text in DEST
- +1 ; INSTRUCT: instructions to user
- +2 ; DEST: global reference for WP text
- +3 IF $EXTRACT($REVERSE(DEST))=")"
- SET $EXTRACT(DEST,$LENGTH(DEST))=","
- +4 WRITE !,INSTRUCT," --"
- +5 NEW DIC,DDWFLAGS,DWLW,DWPK
- +6 ; variables that DIWE seems to leave around
- NEW I,J,X,X1
- +7 SET DIC=DEST
- SET DDWFLAGS="Q"
- SET DWLW=72
- SET DWPK=1
- +8 DO EN^DIWE
- +9 IF '$DATA(@(DEST_"1,0)"))
- Begin DoDot:1
- +10 SET @(DEST_"0)")="^^1^1^"_DT_"^"
- +11 SET @(DEST_"1,0)")="(no description)"
- End DoDot:1
- +12 QUIT
- PICKTEST(TREE) ; Return a string of instruments selected]
- +1 NEW I,X,T,TESTS
- +2 SET I=0
- FOR
- SET I=$ORDER(@TREE@("test",I))
- if 'I
- QUIT
- Begin DoDot:1
- +3 SET TESTS=I
- +4 SET TESTS(I)=@TREE@("test",I,"info","name")
- +5 SET TESTS("B",$$LOW^XLFSTR(TESTS(I)))=I
- End DoDot:1
- +6 ; no prompting if only 1 tests
- IF TESTS=1
- QUIT 1
- +7 ;
- +8 FOR
- Begin DoDot:1
- +9 DO TESTLIST
- +10 WRITE !!,"Choose instrument to browse: "
- +11 READ X:DTIME
- if $EXTRACT(X)="^"
- SET X=""
- if X=""
- QUIT
- +12 SET X=$$LOW^XLFSTR(X)
- +13 ; number entered
- IF +X
- IF $DATA(TESTS(X))
- QUIT
- +14 ; full name entered
- IF $DATA(TESTS("B",X))
- SET X=TESTS("B",X)
- QUIT
- +15 ; partial name entered
- SET T=$ORDER(TESTS("B",X))
- +16 IF X=$EXTRACT(T,1,$LENGTH(X))
- WRITE " ",T
- SET X=TESTS("B",T)
- QUIT
- +17 ; no match
- WRITE " ??",!
- SET X="?"
- End DoDot:1
- if X'["?"
- QUIT
- +18 QUIT X
- +19 ;
- TESTLIST ; Show a list of tests
- +1 ; expects TESTS,TREE from PICKTEST
- +2 WRITE !,"Instruments contained in ",@TREE@("xchg","name")," are:"
- +3 SET I=0
- FOR
- SET I=$ORDER(TESTS(I))
- if 'I
- QUIT
- WRITE !,$JUSTIFY(I,4),?7,TESTS(I)
- +4 QUIT
- SHOSUMM(YTXLOG,YTXDRY) ; Display summary log information
- +1 ; may be called during KIDS build, so uses MES^XPDUTL
- +2 NEW MSG
- +3 IF $GET(YTXLOG("conflict"))
- Begin DoDot:1
- +4 NEW I
- SET I=0
- FOR
- SET I=$ORDER(YTXLOG("conflict",I))
- if 'I
- QUIT
- Begin DoDot:2
- +5 SET MSG="Conflict -- "_YTXLOG("conflict",I)
- +6 DO MES^XPDUTL(MSG)
- End DoDot:2
- +7 SET MSG="Conflicts with existing instruments prevent installation."
- +8 DO LOG^YTXCHGU("error",MSG)
- +9 SET MSG="Contact national support to resolve the conflicts."
- +10 DO MES^XPDUTL(MSG)
- End DoDot:1
- +11 SET MSG=" "_$GET(YTXLOG("added"),0)_" records "_$SELECT(YTXDRY:"would be ",1:"")_"added."
- +12 DO MES^XPDUTL(MSG)
- +13 SET MSG=" "_$GET(YTXLOG("updated"),0)_" records "_$SELECT(YTXDRY:"would be ",1:"")_"updated."
- +14 DO MES^XPDUTL(MSG)
- +15 SET MSG=" "_$GET(YTXLOG("deleted"),0)_" records "_$SELECT(YTXDRY:"would be ",1:"")_"deleted."
- +16 DO MES^XPDUTL(MSG)
- +17 SET MSG=" "_$GET(YTXLOG("error"),0)_" errors."
- +18 DO MES^XPDUTL(MSG)
- +19 QUIT