- PXRMDBLD ; SLC/PJH - Reminder Dialog Generation. ;10/30/2014
- ;;2.0;CLINICAL REMINDERS;**12,47**;Feb 04, 2005;Build 291
- ;
- ;Called from PXRMGEDT
- ;
- ;AGP Most of this routine can probably be deleted. First round commented it out
- ;
- START ;
- N ANS,DIC,DNAME,LIT,LIT1,MSG,NAME,REDO,REM,RLNK,RNAME,ORY
- N PXRMENAB,PXRMLINK,PXRMREPL,PXRMREM
- D ADD^PXRMDEDT
- ;Prompt for auto or manual addition
- ;S ANS="" D ASK(.ANS) Q:$D(DUOUT)!$D(DTOUT)
- ;Auto
- ;I ANS="Y" D AUTO Q
- ;Manual
- ;I ANS'="Y" D ADD^PXRMDEDT
- END Q
- ;
- ;Called by protocol PXRM DIALOG ADD
- ;----------------------------------
- ;ADD(PXRMITEM) ;
- ;N ANS,DNAME,DTOUT,DUOUT
- ;S VALMBCK="R"
- ;W IORESET
- ;W !,PXRMHD
- ;S DNAME=""
- ;D ASK^PXRMDBLD(.ANS) Q:$D(DTOUT)!$D(DUOUT)
- ;I ANS="Y" D AUTOP(PXRMITEM)
- ;Q
- ;
- ;Ask autogenerate/manual
- ;-----------------------
- ;ASK(YESNO) ;
- ;N X,Y,TEXT,DIR
- ;K DIROUT,DIRUT,DTOUT,DUOUT
- ;S DIR(0)="YA0"
- ;S DIR("A")="GENERATE DIALOG AUTOMATICALLY: "
- ;S DIR("B")="N"
- ;S DIR("?")="Enter Y or N. For detailed help type ??"
- ;S DIR("??")=U_"D HELP^PXRMDBLD(1)"
- ;D ^DIR K DIR
- ;I $D(DIROUT) S DTOUT=1
- ;I $D(DTOUT)!($D(DUOUT)) Q
- ;S YESNO=$E(Y(0))
- ;Q
- ;
- ;Source reminder for auto-generate
- ;---------------------------------
- ;AUTO S DIC("A")="SELECT REMINDER TO GENERATE DIALOG FROM: "
- ;S LIT1="You must select a reminder!"
- ;D SEL(811.9,"AEQMZ",.PXRMREM)
- ;Q:$D(DTOUT)!$D(DUOUT)
- ;S REM=$P(PXRMREM(1),U),DNAME=""
- ;Display related dialogs
- ;D DISP(REM)
- ;Promt for type of generate
- ;D AUTOP(REM)
- ;Q
- ;
- ;Autogenerate prompts
- ;--------------------
- ;AUTOP(REM) ;
- ;S RNAME=$P($G(^PXD(811.9,REM,0)),U)
- ;F D Q:$D(DUOUT)!$D(DTOUT)!(DNAME]"")
- ;.N CONFIRM,X,Y,DIR,DA
- ;.K DIROUT,DIRUT,DTOUT,DUOUT
- ;.S DIR(0)="F"_U_"3:40"_U_"K:(X?.N)!'(X'?1P.E) X"
- ;.S DIR("A")="ENTER A UNIQUE DIALOG NAME"
- ;.S DIR("B")=RNAME
- ;.S DIR("?")="Select a unique name for the generated dialog."
- ;.S DIR("??")=U_"D HELP^PXRMDBLD(6)"
- ;.D ^DIR K DIR
- ;.I $D(DIROUT) S DTOUT=1
- ;.I $D(DTOUT)!($D(DUOUT)) Q
- ;.I Y["""" D EN^DDIOL(" name cannot contain quotes!") Q
- ;.I $D(^PXRMD(801.41,"B",Y)) D Q:$G(DTOUT)=1
- ;..D CONFIRM(.CONFIRM,Y) I CONFIRM="Y" D Q:$G(DTOUT)=1
- ;...S DA=$O(^PXRMD(801.41,"B",Y,""))
- ;...I $P($G(^PXRMD(801.41,DA,0)),U,3)="" D Q:$G(DTOUT)=1
- ;....W !!,"THE CURRENT DIALOG IS ENABLED PLEASE DISABLE IT BEFORE "
- ;....W "CONTINING." H 2 S DTOUT=1 Q
- ;..I '$$OVER(Y) S DTOUT=1 Q
- ;..S Y=$$NAME^PXRMDCPY(DA,Y)
- ;..;If this is the linked reminder clear it
- ;..I $P($G(^PXD(811.9,REM,51)),U)=$G(DA) S $P(^PXD(811.9,REM,51),U)=""
- ;.;Option to LINK DIALOG to REMINDER if reminder is not linked already
- ;.S RLNK=$P($G(^PXD(811.9,REM,51)),U),PXRMLINK=0
- ;.I 'RLNK D LINK(.PXRMLINK) Q:$D(DTOUT)!$D(DUOUT)
- ;.;Option to enable dialog
- ;.D ENABLE(.PXRMENAB) Q:$D(DTOUT)!$D(DUOUT)
- ;.;Option to replace existing dialog elements
- ;.D REPL(.PXRMREPL) Q:$D(DTOUT)!$D(DUOUT)
- ;.;Use name entered
- ;.S DNAME=Y
- ;
- ;Q:$D(DUOUT)!$D(DTOUT)
- ;Build dialog
- ;N CHECK D BUILD^PXRMDBL1(REM,DNAME,.CHECK)
- ;D FINDCHCK(DNAME)
- ;Q
- ;
- ;;Display dialogs autogenerated from this reminder
- ;;------------------------------------------------
- ;DISP(RIEN) ;
- ;N ARRAY,DSUB,FIRST
- ;;Get Autogenerated dialogs
- ;S FIRST=1,DSUB=""
- ;F S DSUB=$O(^PXRMD(801.41,"AG",RIEN,DSUB)) Q:'DSUB D
- ;.I FIRST W !!,"Associated Dialogs:" S FIRST=0
- ;.W ?25,$P($G(^PXRMD(801.41,DSUB,0)),U),!
- ;Q
- ;
- ;;Disable generated dialog
- ;;------------------------
- ;ENABLE(YESNO) ;
- ;N X,Y,TEXT,DIR
- ;K DIROUT,DIRUT,DTOUT,DUOUT
- ;S DIR(0)="YA0"
- ;S DIR("A")="ENABLE DIALOG: "
- ;S DIR("B")="NO"
- ;S DIR("?")="Enter Y or N. For detailed help type ??"
- ;S DIR("??")=U_"D HELP^PXRMDBLD(4)"
- ;D ^DIR K DIR
- ;I $D(DIROUT) S DTOUT=1
- ;I $D(DTOUT)!($D(DUOUT)) Q
- ;S YESNO=$E(Y(0))
- ;Q
- ;
- ;FINDCHCK(DNAME) ;
- ;W !!,"Scanning dialog "_DNAME_" for inactived findings."
- ;N CNT,DIALIEN,DIEN,DLGARR,ERRCNT,ERRMSG,FAIL,NAME,STDFILES
- ;N STRTEXT,TEXT,TYPE,WRITMSG
- ;;
- ;S WRITMSG=0
- ;D DIALDSAR^PXRMFRPT(.STDFILES) I '$D(STDFILES) Q
- ;S DIALIEN=$O(^PXRMD(801.41,"B",DNAME,"")) Q:DIALIEN'>0
- ;S ERRCNT=0,CNT=0,FAIL=0
- ;S STRTEXT(1)="Dialog "_DNAME_" contains errors. Review the dialog before using it in CPRS."
- ;D BUILDMSG^PXRMDLRP(.STRTEXT,.CNT,.TEXT)
- ;;
- ;;build array of dialog items
- ;D DITEMAR^PXRMDLRP(DIALIEN,.DLGARR,.ERRCNT,.ERRMSG,.FAIL)
- ;;
- ;;bad data format in the dialog
- ;I FAIL="F" D Q
- ;.D BUILDMSG^PXRMDLRP(.ERRMSG,.CNT,.TEXT)
- ;.D EN^DDIOL(.TEXT)
- ;.H 2
- ;;
- ;;scan for inactive finding items, checks against standardized files
- ;S DIEN=0 F S DIEN=$O(DLGARR(DIEN)) Q:DIEN'>0 D
- ;.K ERRMSG
- ;.I $$DISABCHK^PXRMDLG6(DIEN,.STDFILES,.ERRMSG)=1 Q
- ;.;
- ;.S NAME=$P($G(^PXRMD(801.41,DIEN,0)),U)
- ;.S TYPE=$$EXTERNAL^DILFD(801.41,4,"",$P($G(^PXRMD(801.41,DIEN,0)),U,4))
- ;.S $P(^PXRMD(801.41,DIEN,0),U,3)=1
- ;.S STRTEXT(1)="Dialog "_TYPE_" "_NAME_" has been marked disable for the following reason(s)."
- ;.D BUILDMSG^PXRMDLRP(.STRTEXT,.CNT,.TEXT)
- ;.D BUILDMSG^PXRMDLRP(.ERRMSG,.CNT,.TEXT)
- ;.S WRITMSG=1
- ;;
- ;I WRITMSG=1 D EN^DDIOL(.TEXT) H 2
- ;Q
- ;Link dialog to reminder
- ;-----------------------
- ;LINK(YESNO) ;
- ;N X,Y,TEXT,DIR
- ;K DIROUT,DIRUT,DTOUT,DUOUT
- ;S DIR(0)="YA0"
- ;S DIR("A")="LINK DIALOG TO REMINDER: "
- ;S DIR("B")="YES"
- ;S DIR("?")="Enter Y or N. For detailed help type ??"
- ;S DIR("??")=U_"D HELP^PXRMDBLD(5)"
- ;D ^DIR K DIR
- ;I $D(DIROUT) S DTOUT=1
- ;I $D(DTOUT)!($D(DUOUT)) Q
- ;S YESNO=$E(Y(0))
- ;Q
- ;;
- ;;Option to override existing dialog
- ;;----------------------------------
- ;OVER(DNAME) ;
- ;N DIR,X,Y
- ;S DIR(0)="Y",DIR("B")="NO"
- ;S DIR("A")="OVERWRITE EXISTING REMINDER DIALOG "
- ;S DIR("?")="Enter Y or N. For detailed help type ??"
- ;S DIR("??")=U_"D HELP^PXRMDBLD(2)"
- ;D ^DIR K DIR
- ;I $D(DIROUT) S DTOUT=1
- ;I $D(DTOUT)!($D(DUOUT)) Q 0
- ;Q $S(Y(0)="YES":1,1:0)
- ;;
- ;;Option to replace existing dialog elements
- ;;------------------------------------------
- ;REPL(INP) ;
- ;N DIR,X,Y
- ;S DIR(0)="Y",DIR("B")="NO"
- ;S DIR("A")="REPLACE ANY EXISTING DIALOG ELEMENTS"
- ;S DIR("?")="Enter Y or N. For detailed help type ??"
- ;S DIR("??")=U_"D HELP^PXRMDBLD(3)"
- ;D ^DIR K DIR
- ;I $D(DIROUT) S DTOUT=1
- ;I $D(DTOUT)!($D(DUOUT)) Q
- ;S INP=$S(Y(0)="YES":1,1:0)
- ;Q
- ;;
- ;;Reminder selection
- ;;------------------
- ;SEL(FILE,MODE,ARRAY) ;
- ;N X,Y,CNT
- ;K DIROUT,DIRUT,DTOUT,DUOUT
- ;S CNT=0
- ;W !
- ;F D Q:$D(DTOUT) Q:$D(DUOUT) Q:CNT>0 Q:(Y=-1)&(CNT>0)
- ;.S DIC=FILE,DIC(0)=MODE
- ;.D ^DIC
- ;.I X=(U_U) S DTOUT=1
- ;.I '$D(DTOUT),('$D(DUOUT)) D
- ;..I +Y'=-1 D Q
- ;...S CNT=CNT+1,ARRAY(CNT)=Y_U_Y(0,0)_U_$P(Y(0),U,3)
- ;..W:CNT=0 !,LIT1
- ;.K DIC
- ;Q
- ;
- ;CONFIRM(YESNO,NAME) ;
- ;N X,Y,TEXT,DIR
- ;K DIROUT,DIRUT,DTOUT,DUOUT
- ;S DIR(0)="YA0"
- ;S DIR("A")="YOU ARE ABOUT TO OVERWRITE THE EXISTING DIALOG "_NAME_" CONTINUE? "
- ;S DIR("B")="N"
- ;S DIR("?")="Enter Y or N. For detailed help type ??"
- ;S DIR("??")=U_"D HELP^PXRMDBLD(1)"
- ;D ^DIR K DIR
- ;I $D(DIROUT) S DTOUT=1
- ;I $D(DTOUT)!($D(DUOUT)) Q
- ;S YESNO=$E(Y(0))
- ;Q
- ;;
- ;General help text routine.
- ;--------------------------
- HELP(CALL) ;
- N HTEXT
- N DIWF,DIWL,DIWR,IC
- S DIWF="C75",DIWL=0,DIWR=75
- ;
- I CALL=1 D
- .S HTEXT(1)="Enter Yes to generate reminder dialog automatically for a"
- .S HTEXT(2)="selected reminder. Enter No to create a reminder dialog"
- .S HTEXT(3)="using the standard fileman edit."
- I CALL=2 D
- .S HTEXT(1)="Enter Yes to replace the existing reminder dialog."
- .S HTEXT(2)="Enter No to return and enter an alternative dialog name."
- I CALL=3 D
- .S HTEXT(1)="For each FINDING ITEM on the reminder a dialog element"
- .S HTEXT(2)="will be created. A separate DIALOG ELEMENT is created for"
- .S HTEXT(3)="each enabled RESOLUTION STATUS in the FINDING TYPE"
- .S HTEXT(4)="PARAMETERS for this finding type. The dialog element is"
- .S HTEXT(5)="unique for finding type, finding item name and resolution"
- .S HTEXT(6)="status name."
- .S HTEXT(7)="e.g. VM WEIGHT DONE will be generated for the finding item"
- .S HTEXT(8)=" vitals measurement/weight."
- .S HTEXT(9)=""
- .S HTEXT(10)="Enter Yes to rebuild all dialog elements used by this"
- .S HTEXT(11)="reminder overwriting any existing modifications."
- .S HTEXT(12)=""
- .S HTEXT(13)="Enter No to use existing dialog elements if they exist."
- .S HTEXT(14)="New dialog elements will be created if they don't already"
- .S HTEXT(15)="exist."
- I CALL=4 D
- .S HTEXT(1)="Enter Yes to create a dialog enabled for use in CPRS."
- .S HTEXT(2)="Enter No to create a dialog disabled for CPRS."
- I CALL=5 D
- .S HTEXT(1)="If the source reminder is not linked to any other dialog"
- .S HTEXT(2)="enter Yes to link the reminder to the generated dialog."
- .S HTEXT(3)="Enter No if no link should be made."
- I CALL=6 D
- .S HTEXT(1)="Enter the name of the dialog. The default is the reminder"
- .S HTEXT(2)="name. If the name of an existing dialog is specified the"
- .S HTEXT(3)="option to override the existing dialog will be given."
- K ^UTILITY($J,"W")
- S IC=""
- F S IC=$O(HTEXT(IC)) Q:IC="" D
- . S X=HTEXT(IC)
- . D ^DIWP
- W !
- S IC=0
- F S IC=$O(^UTILITY($J,"W",0,IC)) Q:IC="" D
- . W !,^UTILITY($J,"W",0,IC,0)
- K ^UTILITY($J,"W")
- W !
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPXRMDBLD 9313 printed Feb 18, 2025@23:09:57 Page 2
- PXRMDBLD ; SLC/PJH - Reminder Dialog Generation. ;10/30/2014
- +1 ;;2.0;CLINICAL REMINDERS;**12,47**;Feb 04, 2005;Build 291
- +2 ;
- +3 ;Called from PXRMGEDT
- +4 ;
- +5 ;AGP Most of this routine can probably be deleted. First round commented it out
- +6 ;
- START ;
- +1 NEW ANS,DIC,DNAME,LIT,LIT1,MSG,NAME,REDO,REM,RLNK,RNAME,ORY
- +2 NEW PXRMENAB,PXRMLINK,PXRMREPL,PXRMREM
- +3 DO ADD^PXRMDEDT
- +4 ;Prompt for auto or manual addition
- +5 ;S ANS="" D ASK(.ANS) Q:$D(DUOUT)!$D(DTOUT)
- +6 ;Auto
- +7 ;I ANS="Y" D AUTO Q
- +8 ;Manual
- +9 ;I ANS'="Y" D ADD^PXRMDEDT
- END QUIT
- +1 ;
- +2 ;Called by protocol PXRM DIALOG ADD
- +3 ;----------------------------------
- +4 ;ADD(PXRMITEM) ;
- +5 ;N ANS,DNAME,DTOUT,DUOUT
- +6 ;S VALMBCK="R"
- +7 ;W IORESET
- +8 ;W !,PXRMHD
- +9 ;S DNAME=""
- +10 ;D ASK^PXRMDBLD(.ANS) Q:$D(DTOUT)!$D(DUOUT)
- +11 ;I ANS="Y" D AUTOP(PXRMITEM)
- +12 ;Q
- +13 ;
- +14 ;Ask autogenerate/manual
- +15 ;-----------------------
- +16 ;ASK(YESNO) ;
- +17 ;N X,Y,TEXT,DIR
- +18 ;K DIROUT,DIRUT,DTOUT,DUOUT
- +19 ;S DIR(0)="YA0"
- +20 ;S DIR("A")="GENERATE DIALOG AUTOMATICALLY: "
- +21 ;S DIR("B")="N"
- +22 ;S DIR("?")="Enter Y or N. For detailed help type ??"
- +23 ;S DIR("??")=U_"D HELP^PXRMDBLD(1)"
- +24 ;D ^DIR K DIR
- +25 ;I $D(DIROUT) S DTOUT=1
- +26 ;I $D(DTOUT)!($D(DUOUT)) Q
- +27 ;S YESNO=$E(Y(0))
- +28 ;Q
- +29 ;
- +30 ;Source reminder for auto-generate
- +31 ;---------------------------------
- +32 ;AUTO S DIC("A")="SELECT REMINDER TO GENERATE DIALOG FROM: "
- +33 ;S LIT1="You must select a reminder!"
- +34 ;D SEL(811.9,"AEQMZ",.PXRMREM)
- +35 ;Q:$D(DTOUT)!$D(DUOUT)
- +36 ;S REM=$P(PXRMREM(1),U),DNAME=""
- +37 ;Display related dialogs
- +38 ;D DISP(REM)
- +39 ;Promt for type of generate
- +40 ;D AUTOP(REM)
- +41 ;Q
- +42 ;
- +43 ;Autogenerate prompts
- +44 ;--------------------
- +45 ;AUTOP(REM) ;
- +46 ;S RNAME=$P($G(^PXD(811.9,REM,0)),U)
- +47 ;F D Q:$D(DUOUT)!$D(DTOUT)!(DNAME]"")
- +48 ;.N CONFIRM,X,Y,DIR,DA
- +49 ;.K DIROUT,DIRUT,DTOUT,DUOUT
- +50 ;.S DIR(0)="F"_U_"3:40"_U_"K:(X?.N)!'(X'?1P.E) X"
- +51 ;.S DIR("A")="ENTER A UNIQUE DIALOG NAME"
- +52 ;.S DIR("B")=RNAME
- +53 ;.S DIR("?")="Select a unique name for the generated dialog."
- +54 ;.S DIR("??")=U_"D HELP^PXRMDBLD(6)"
- +55 ;.D ^DIR K DIR
- +56 ;.I $D(DIROUT) S DTOUT=1
- +57 ;.I $D(DTOUT)!($D(DUOUT)) Q
- +58 ;.I Y["""" D EN^DDIOL(" name cannot contain quotes!") Q
- +59 ;.I $D(^PXRMD(801.41,"B",Y)) D Q:$G(DTOUT)=1
- +60 ;..D CONFIRM(.CONFIRM,Y) I CONFIRM="Y" D Q:$G(DTOUT)=1
- +61 ;...S DA=$O(^PXRMD(801.41,"B",Y,""))
- +62 ;...I $P($G(^PXRMD(801.41,DA,0)),U,3)="" D Q:$G(DTOUT)=1
- +63 ;....W !!,"THE CURRENT DIALOG IS ENABLED PLEASE DISABLE IT BEFORE "
- +64 ;....W "CONTINING." H 2 S DTOUT=1 Q
- +65 ;..I '$$OVER(Y) S DTOUT=1 Q
- +66 ;..S Y=$$NAME^PXRMDCPY(DA,Y)
- +67 ;..;If this is the linked reminder clear it
- +68 ;..I $P($G(^PXD(811.9,REM,51)),U)=$G(DA) S $P(^PXD(811.9,REM,51),U)=""
- +69 ;.;Option to LINK DIALOG to REMINDER if reminder is not linked already
- +70 ;.S RLNK=$P($G(^PXD(811.9,REM,51)),U),PXRMLINK=0
- +71 ;.I 'RLNK D LINK(.PXRMLINK) Q:$D(DTOUT)!$D(DUOUT)
- +72 ;.;Option to enable dialog
- +73 ;.D ENABLE(.PXRMENAB) Q:$D(DTOUT)!$D(DUOUT)
- +74 ;.;Option to replace existing dialog elements
- +75 ;.D REPL(.PXRMREPL) Q:$D(DTOUT)!$D(DUOUT)
- +76 ;.;Use name entered
- +77 ;.S DNAME=Y
- +78 ;
- +79 ;Q:$D(DUOUT)!$D(DTOUT)
- +80 ;Build dialog
- +81 ;N CHECK D BUILD^PXRMDBL1(REM,DNAME,.CHECK)
- +82 ;D FINDCHCK(DNAME)
- +83 ;Q
- +84 ;
- +85 ;;Display dialogs autogenerated from this reminder
- +86 ;;------------------------------------------------
- +87 ;DISP(RIEN) ;
- +88 ;N ARRAY,DSUB,FIRST
- +89 ;;Get Autogenerated dialogs
- +90 ;S FIRST=1,DSUB=""
- +91 ;F S DSUB=$O(^PXRMD(801.41,"AG",RIEN,DSUB)) Q:'DSUB D
- +92 ;.I FIRST W !!,"Associated Dialogs:" S FIRST=0
- +93 ;.W ?25,$P($G(^PXRMD(801.41,DSUB,0)),U),!
- +94 ;Q
- +95 ;
- +96 ;;Disable generated dialog
- +97 ;;------------------------
- +98 ;ENABLE(YESNO) ;
- +99 ;N X,Y,TEXT,DIR
- +100 ;K DIROUT,DIRUT,DTOUT,DUOUT
- +101 ;S DIR(0)="YA0"
- +102 ;S DIR("A")="ENABLE DIALOG: "
- +103 ;S DIR("B")="NO"
- +104 ;S DIR("?")="Enter Y or N. For detailed help type ??"
- +105 ;S DIR("??")=U_"D HELP^PXRMDBLD(4)"
- +106 ;D ^DIR K DIR
- +107 ;I $D(DIROUT) S DTOUT=1
- +108 ;I $D(DTOUT)!($D(DUOUT)) Q
- +109 ;S YESNO=$E(Y(0))
- +110 ;Q
- +111 ;
- +112 ;FINDCHCK(DNAME) ;
- +113 ;W !!,"Scanning dialog "_DNAME_" for inactived findings."
- +114 ;N CNT,DIALIEN,DIEN,DLGARR,ERRCNT,ERRMSG,FAIL,NAME,STDFILES
- +115 ;N STRTEXT,TEXT,TYPE,WRITMSG
- +116 ;;
- +117 ;S WRITMSG=0
- +118 ;D DIALDSAR^PXRMFRPT(.STDFILES) I '$D(STDFILES) Q
- +119 ;S DIALIEN=$O(^PXRMD(801.41,"B",DNAME,"")) Q:DIALIEN'>0
- +120 ;S ERRCNT=0,CNT=0,FAIL=0
- +121 ;S STRTEXT(1)="Dialog "_DNAME_" contains errors. Review the dialog before using it in CPRS."
- +122 ;D BUILDMSG^PXRMDLRP(.STRTEXT,.CNT,.TEXT)
- +123 ;;
- +124 ;;build array of dialog items
- +125 ;D DITEMAR^PXRMDLRP(DIALIEN,.DLGARR,.ERRCNT,.ERRMSG,.FAIL)
- +126 ;;
- +127 ;;bad data format in the dialog
- +128 ;I FAIL="F" D Q
- +129 ;.D BUILDMSG^PXRMDLRP(.ERRMSG,.CNT,.TEXT)
- +130 ;.D EN^DDIOL(.TEXT)
- +131 ;.H 2
- +132 ;;
- +133 ;;scan for inactive finding items, checks against standardized files
- +134 ;S DIEN=0 F S DIEN=$O(DLGARR(DIEN)) Q:DIEN'>0 D
- +135 ;.K ERRMSG
- +136 ;.I $$DISABCHK^PXRMDLG6(DIEN,.STDFILES,.ERRMSG)=1 Q
- +137 ;.;
- +138 ;.S NAME=$P($G(^PXRMD(801.41,DIEN,0)),U)
- +139 ;.S TYPE=$$EXTERNAL^DILFD(801.41,4,"",$P($G(^PXRMD(801.41,DIEN,0)),U,4))
- +140 ;.S $P(^PXRMD(801.41,DIEN,0),U,3)=1
- +141 ;.S STRTEXT(1)="Dialog "_TYPE_" "_NAME_" has been marked disable for the following reason(s)."
- +142 ;.D BUILDMSG^PXRMDLRP(.STRTEXT,.CNT,.TEXT)
- +143 ;.D BUILDMSG^PXRMDLRP(.ERRMSG,.CNT,.TEXT)
- +144 ;.S WRITMSG=1
- +145 ;;
- +146 ;I WRITMSG=1 D EN^DDIOL(.TEXT) H 2
- +147 ;Q
- +148 ;Link dialog to reminder
- +149 ;-----------------------
- +150 ;LINK(YESNO) ;
- +151 ;N X,Y,TEXT,DIR
- +152 ;K DIROUT,DIRUT,DTOUT,DUOUT
- +153 ;S DIR(0)="YA0"
- +154 ;S DIR("A")="LINK DIALOG TO REMINDER: "
- +155 ;S DIR("B")="YES"
- +156 ;S DIR("?")="Enter Y or N. For detailed help type ??"
- +157 ;S DIR("??")=U_"D HELP^PXRMDBLD(5)"
- +158 ;D ^DIR K DIR
- +159 ;I $D(DIROUT) S DTOUT=1
- +160 ;I $D(DTOUT)!($D(DUOUT)) Q
- +161 ;S YESNO=$E(Y(0))
- +162 ;Q
- +163 ;;
- +164 ;;Option to override existing dialog
- +165 ;;----------------------------------
- +166 ;OVER(DNAME) ;
- +167 ;N DIR,X,Y
- +168 ;S DIR(0)="Y",DIR("B")="NO"
- +169 ;S DIR("A")="OVERWRITE EXISTING REMINDER DIALOG "
- +170 ;S DIR("?")="Enter Y or N. For detailed help type ??"
- +171 ;S DIR("??")=U_"D HELP^PXRMDBLD(2)"
- +172 ;D ^DIR K DIR
- +173 ;I $D(DIROUT) S DTOUT=1
- +174 ;I $D(DTOUT)!($D(DUOUT)) Q 0
- +175 ;Q $S(Y(0)="YES":1,1:0)
- +176 ;;
- +177 ;;Option to replace existing dialog elements
- +178 ;;------------------------------------------
- +179 ;REPL(INP) ;
- +180 ;N DIR,X,Y
- +181 ;S DIR(0)="Y",DIR("B")="NO"
- +182 ;S DIR("A")="REPLACE ANY EXISTING DIALOG ELEMENTS"
- +183 ;S DIR("?")="Enter Y or N. For detailed help type ??"
- +184 ;S DIR("??")=U_"D HELP^PXRMDBLD(3)"
- +185 ;D ^DIR K DIR
- +186 ;I $D(DIROUT) S DTOUT=1
- +187 ;I $D(DTOUT)!($D(DUOUT)) Q
- +188 ;S INP=$S(Y(0)="YES":1,1:0)
- +189 ;Q
- +190 ;;
- +191 ;;Reminder selection
- +192 ;;------------------
- +193 ;SEL(FILE,MODE,ARRAY) ;
- +194 ;N X,Y,CNT
- +195 ;K DIROUT,DIRUT,DTOUT,DUOUT
- +196 ;S CNT=0
- +197 ;W !
- +198 ;F D Q:$D(DTOUT) Q:$D(DUOUT) Q:CNT>0 Q:(Y=-1)&(CNT>0)
- +199 ;.S DIC=FILE,DIC(0)=MODE
- +200 ;.D ^DIC
- +201 ;.I X=(U_U) S DTOUT=1
- +202 ;.I '$D(DTOUT),('$D(DUOUT)) D
- +203 ;..I +Y'=-1 D Q
- +204 ;...S CNT=CNT+1,ARRAY(CNT)=Y_U_Y(0,0)_U_$P(Y(0),U,3)
- +205 ;..W:CNT=0 !,LIT1
- +206 ;.K DIC
- +207 ;Q
- +208 ;
- +209 ;CONFIRM(YESNO,NAME) ;
- +210 ;N X,Y,TEXT,DIR
- +211 ;K DIROUT,DIRUT,DTOUT,DUOUT
- +212 ;S DIR(0)="YA0"
- +213 ;S DIR("A")="YOU ARE ABOUT TO OVERWRITE THE EXISTING DIALOG "_NAME_" CONTINUE? "
- +214 ;S DIR("B")="N"
- +215 ;S DIR("?")="Enter Y or N. For detailed help type ??"
- +216 ;S DIR("??")=U_"D HELP^PXRMDBLD(1)"
- +217 ;D ^DIR K DIR
- +218 ;I $D(DIROUT) S DTOUT=1
- +219 ;I $D(DTOUT)!($D(DUOUT)) Q
- +220 ;S YESNO=$E(Y(0))
- +221 ;Q
- +222 ;;
- +223 ;General help text routine.
- +224 ;--------------------------
- HELP(CALL) ;
- +1 NEW HTEXT
- +2 NEW DIWF,DIWL,DIWR,IC
- +3 SET DIWF="C75"
- SET DIWL=0
- SET DIWR=75
- +4 ;
- +5 IF CALL=1
- Begin DoDot:1
- +6 SET HTEXT(1)="Enter Yes to generate reminder dialog automatically for a"
- +7 SET HTEXT(2)="selected reminder. Enter No to create a reminder dialog"
- +8 SET HTEXT(3)="using the standard fileman edit."
- End DoDot:1
- +9 IF CALL=2
- Begin DoDot:1
- +10 SET HTEXT(1)="Enter Yes to replace the existing reminder dialog."
- +11 SET HTEXT(2)="Enter No to return and enter an alternative dialog name."
- End DoDot:1
- +12 IF CALL=3
- Begin DoDot:1
- +13 SET HTEXT(1)="For each FINDING ITEM on the reminder a dialog element"
- +14 SET HTEXT(2)="will be created. A separate DIALOG ELEMENT is created for"
- +15 SET HTEXT(3)="each enabled RESOLUTION STATUS in the FINDING TYPE"
- +16 SET HTEXT(4)="PARAMETERS for this finding type. The dialog element is"
- +17 SET HTEXT(5)="unique for finding type, finding item name and resolution"
- +18 SET HTEXT(6)="status name."
- +19 SET HTEXT(7)="e.g. VM WEIGHT DONE will be generated for the finding item"
- +20 SET HTEXT(8)=" vitals measurement/weight."
- +21 SET HTEXT(9)=""
- +22 SET HTEXT(10)="Enter Yes to rebuild all dialog elements used by this"
- +23 SET HTEXT(11)="reminder overwriting any existing modifications."
- +24 SET HTEXT(12)=""
- +25 SET HTEXT(13)="Enter No to use existing dialog elements if they exist."
- +26 SET HTEXT(14)="New dialog elements will be created if they don't already"
- +27 SET HTEXT(15)="exist."
- End DoDot:1
- +28 IF CALL=4
- Begin DoDot:1
- +29 SET HTEXT(1)="Enter Yes to create a dialog enabled for use in CPRS."
- +30 SET HTEXT(2)="Enter No to create a dialog disabled for CPRS."
- End DoDot:1
- +31 IF CALL=5
- Begin DoDot:1
- +32 SET HTEXT(1)="If the source reminder is not linked to any other dialog"
- +33 SET HTEXT(2)="enter Yes to link the reminder to the generated dialog."
- +34 SET HTEXT(3)="Enter No if no link should be made."
- End DoDot:1
- +35 IF CALL=6
- Begin DoDot:1
- +36 SET HTEXT(1)="Enter the name of the dialog. The default is the reminder"
- +37 SET HTEXT(2)="name. If the name of an existing dialog is specified the"
- +38 SET HTEXT(3)="option to override the existing dialog will be given."
- End DoDot:1
- +39 KILL ^UTILITY($JOB,"W")
- +40 SET IC=""
- +41 FOR
- SET IC=$ORDER(HTEXT(IC))
- if IC=""
- QUIT
- Begin DoDot:1
- +42 SET X=HTEXT(IC)
- +43 DO ^DIWP
- End DoDot:1
- +44 WRITE !
- +45 SET IC=0
- +46 FOR
- SET IC=$ORDER(^UTILITY($JOB,"W",0,IC))
- if IC=""
- QUIT
- Begin DoDot:1
- +47 WRITE !,^UTILITY($JOB,"W",0,IC,0)
- End DoDot:1
- +48 KILL ^UTILITY($JOB,"W")
- +49 WRITE !
- +50 QUIT