Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: DGMHV

DGMHV.m

Go to the documentation of this file.
  1. DGMHV ;ALB/JCH - Display Pre-Registration MHV Enrollment/Registration ; 12/9/03 3:22pm
  1. ;;5.3;Registration;**903**;Aug 13, 1993;Build 82
  1. ;
  1. ; Submitted to OSEHRA 04/02/2015 by HP
  1. ; All entry points authored by James Harris 2014-2015
  1. ;
  1. Q
  1. EN(DFN) ; Entry Point for Alert, Socialization, and MHV Enrollment/Registration field editing 'Screen'
  1. ;This functionality will only be executed if "Enable MyHealtheVet Prompts?" (#1100.07
  1. ;field in MAS PARAMETERS (43) file is set to YES (internal value 1)
  1. D:$$MHVENABL^DGMHVUTL() MAIN^DGMHV(DFN)
  1. Q
  1. MAIN(DFN) ; Main Entry Point for MHV socialization text/action
  1. ; Do not display MHV enrollment/registration 'screen' if socialization Action entered
  1. ; (DGMHVOUT="A"), meaning MHV enrollment/registration is in progress, not a firm YES or NO
  1. ; Do not display socialization text/action if MHV ENROLLED/REGISTERED field is not null (DGMHVOUT="R")
  1. N DGMHVNOS,DGRSPNS,DGENTRY,DGACTS,DGMHAC,DGMHSEL,DGDPTSOC,DGMHVOUT,DGMHVNOS,DIR
  1. D CLEAR,ALERT,DSPLACT(DFN) I $G(DGMHVOUT)="" W !!! D CONT
  1. D CLEAR
  1. I $G(DGMHVOUT)="R" D EN^DGMHVAC(DFN) Q
  1. I $G(DGMHVOUT)="A" D Q
  1. .N DGDPTSOC S DGDPTSOC=+$O(^DPT(DFN,1,"A"),-1)+1 D ACTIONS^DGMHV(.DGMHAC,.DGMHSEL,DGDPTSOC,"S")
  1. .Q:$G(DGMHVOUT)!$G(DGMHVNOS)
  1. .D EN^DGMHVAC(DFN)
  1. D SOCIAL^DGMHV Q:$G(DGMHVOUT)
  1. Q:$G(DGMHVNOS)
  1. D EN^DGMHVAC(DFN)
  1. Q
  1. SOCIAL ; MHV Enrollment/Registration talking point/socialization text action
  1. ; Display MHV socialization canned text, prompt for patient response, display and prompt for clerk action
  1. I $P($G(^DPT(DFN,2)),"^") Q
  1. N DGSODONE
  1. F Q:$G(DGSODONE)!$G(DGMHVOUT) D SLOOP
  1. Q
  1. SLOOP ; Allow user to go back and enter a different patient response in case the patient changes their mind
  1. N DGMHV,I,DGDIR0,DGDPTSOC,DGTAB,DGREADTX,DGMHVMOD S DGDPTSOC="",DGMHVMOD="S"
  1. K DIRUT
  1. S DGREADTX="Please read the following to the patient"
  1. D GTSOCODS(.DGDIR0) S DGDIR0="SO^",I="" F S I=$O(DGDIR0(I)) Q:'I S DGDIR0=DGDIR0_I_":"_DGDIR0(I)_";"
  1. F Q:$G(DGMHVOUT)!$G(DGMHV("SOCIAL")) D
  1. .D CLEAR W !!,DGREADTX
  1. .K DIR W !!?8,"""Has a health care team member encouraged you"
  1. .W !?9,"to register online for My HealtheVet?"""
  1. .S DIR("A")="Patient response"
  1. .S DIR(0)=DGDIR0
  1. .S DIR("??")="D CLEAR" D ^DIR I $E($G(Y))="^" S DGMHVOUT=1 Q
  1. .I Y="" W !!,"My HealtheVet registration information is required to continue with this patient",!! D CONT Q
  1. .S DGMHV("SOCIAL")=$G(DGDIR0(Y,"IEN"))
  1. Q:$G(DGMHVOUT)
  1. D FILSOC(DFN,+DGMHV("SOCIAL"),$$NOW^XLFDT,.DGDPTSOC)
  1. I DGMHV("SOCIAL")=1 D
  1. .N DGOLDEN S DGOLDEN=$P($G(^DPT(DFN,2)),"^")
  1. .N DIE,DR,DA S DIE="^DPT(",DR="537027////1;537030////"_$$NOW^XLFDT,DA=DFN D ^DIE
  1. .Q:DGOLDEN=1
  1. .N DGFLD F DGFLD=537033,537036 D FILRNA^DGMHVAC(DFN,DGFLD,"@")
  1. .N MHVND S MHVND=$G(^DPT(+DFN,2))
  1. .I $P(MHVND,"^",2)=0 F DGFLD=537028,537031,537034,537037 D FILRNA^DGMHVAC(DFN,DGFLD,"@")
  1. .I $P(MHVND,"^",3)=0 F DGFLD=537029,537032,537035,537038 D FILRNA^DGMHVAC(DFN,DGFLD,"@")
  1. Q:'$G(DGMHV("SOCIAL")) D CLEAR W !!,DGREADTX W !! D CANNED(DGMHV("SOCIAL")) D CONT I (DGMHV("SOCIAL")>1) I $G(DIRUT)&($G(X)="^") S DGSODONE=0 Q
  1. N FLWUP,RTST S DGAR1=DGDPTSOC S FLWUP=$G(^DGMHV(390.01,DGMHV("SOCIAL"),4)) S RTST=$P(FLWUP,"^",2),RTST=$P(RTST,"(") I RTST]"" I $T(@RTST)]"" X FLWUP
  1. S DGSODONE=1
  1. Q
  1. ALERT ; Displays the 'MHV Enrollment/Registration Information Missing' message
  1. Q:'$D(XQY0)
  1. N X,Y,IORVON,IORVOFF,DIR,DIRUT
  1. S X="IORVON;IORVOFF"
  1. D ENDR^%ZISS
  1. W !!!!?4,$CHAR(7) W:$D(IORVON) IORVON W "** PATIENT NEEDS TO ANSWER MY HEALTHEVET REGISTRATION QUESTIONS **" W:$D(IORVOFF) IORVOFF
  1. W !?4,"Patient is missing required My HealtheVet Registration information",!
  1. Q
  1. FILSOC(DFN,RSPNT,RSPDT,DGDPTSOC) ; File MHV Socialization Information to PATIENT (#2) file
  1. ; DFN = PATIENT IEN
  1. ; RSPNT = RESPONSE POINTER TO FILE 390.01
  1. ; RPSDT = RESPONSE DATE/TIME
  1. N DINUM,DIE,DA,DR,DO,DGMHVND K DIE,DA,DR,DO
  1. S DIC(0)="EZ",DIC="^DPT(DFN,1,",DA(2)=DFN,DA(1)=+$O(^DPT(DFN,1,"A"),-1)+1,DGDPTSOC=DA(1)
  1. S DGMHVND=DA(1),DINUM=DA(1),X=RSPDT,DIC("DR")=".01////"_RSPDT_";1////"_RSPNT D FILE^DICN
  1. K DIE,DIC,DA S DIE="^DPT(DFN,1,",DA(1)=DFN,DA=DGMHVND
  1. S DR=".01////"_RSPDT_";1////"_RSPNT D ^DIE
  1. Q
  1. CANNED(SCRIPT) ; Display canned text from PATIENT TEXT (#2) field in the MHV SOCIALIZATION (#390.01) file
  1. Q:'$G(SCRIPT)
  1. N DGMHVLIN,DGLINCNT,DGMHVOUT S DGMHVLIN=$P($G(^DGMHV(390.01,SCRIPT,2,0)),"^",3),DGMHVOUT=0
  1. S DGLINCNT=0 F S DGLINCNT=$O(^DGMHV(390.01,SCRIPT,2,DGLINCNT)) Q:'DGLINCNT!(DGLINCNT>DGMHVLIN) D
  1. .W !?2 W:DGLINCNT=1 """" W ^DGMHV(390.01,SCRIPT,2,DGLINCNT,0) S DGMHVOUT=1
  1. W:$G(DGMHVOUT) """" W !
  1. Q
  1. GTSOCODS(DGSOCCOD) ; Get array of socialization codes and display sequences from MHV SOCIALIZATION (#390.01) file
  1. K DGSOCCOD,DGSOCIEN,DGSOCSEQ S DGSOCSEQ="",DGSOCCOD="",DGSOCIEN="" N I,TEXT S I=0,TEXT=""
  1. F S DGSOCSEQ=$O(^DGMHV(390.01,"C",DGSOCSEQ)) Q:'DGSOCSEQ D
  1. .S DGSOCIEN="" F S DGSOCIEN=$O(^DGMHV(390.01,"C",DGSOCSEQ,DGSOCIEN)) Q:DGSOCIEN="" D
  1. ..N TEXT D FIND^DIC(390.01,"","@;.01","A",DGSOCIEN,1,"","","","TEXT")
  1. ..S I=I+1 S DGSOCCOD(I)=TEXT("DILIST","ID",1,".01"),DGSOCCOD(I,"IEN")=DGSOCIEN
  1. Q
  1. NOFLW(DGSOCCOD) ; Perform followup dialog for patient that does not wish to enroll/register
  1. N DIR,DIC,DA,DGAR1,DGAR2 S DGAR1="",DGAR2=""
  1. W !! S DIR("A",1)=" How does the patient feel now about registering in My HealtheVet?"
  1. S DIR("A",2)=" ",DIR("A",3)=" 1) Patient is not interested."
  1. S DIR("A",4)=" 2) Patient is interested.",DIR("A",5)=" "
  1. S DIR(0)="SA^1:Patient is not interested;2:Patient is interested",DIR("A")="Select a response: "
  1. D ^DIR I $G(Y)'="1" D ACTIONS(.DGAR1,DGAR2,$G(DGDPTSOC),"S") Q
  1. ; If patient isn't interested to be enrolled/register in MHV then update Enroll/Register,
  1. ; Authenticated, and Secure Message fields to "NO"
  1. N DIE,DR,DA,DGMHVNOW S DA=DFN,DGMHVNOW=$$NOW^XLFDT
  1. S DIE="^DPT(",DR="537027////0;537030////"_DGMHVNOW_";537028////0;537029////0;537031////"_DGMHVNOW_";537032////"_DGMHVNOW
  1. D ^DIE
  1. F DGRPFLD=537036:1:537038 D FILRNA^DGMHVAC(DFN,DGRPFLD,+$O(^DGMHV(390.03,"B","I am not interested.","")))
  1. Q
  1. ACTIONS(DGMSACT,ACTSEL,DGENRQ,DGMHVMOD) ; Display MHV Socialization actions, allow selection, return selected actions in ACTSEL
  1. ; Input:
  1. ; DGMSACT - Array of selectable actions from MHV SOCIALIZATION ACTIONS (#390.02) file
  1. ; ACTSEL - Array of action(s) currently selected by clerk
  1. ; DGENRQ - Internal Entry Number (IEN) of the prospective MHV SOCIALIZATION (#537026) multiple in the PATIENT (#2) file into which
  1. ; the selected actions in ACTSEL will be stored.
  1. ; DGMHVMOD - Mode; the section of MHV functionality from which this is invoked. Used to screen selectable actions.
  1. ; "R" - Enrollment/Registration "S" - Socialization, "A" - Authentication field, "M" - Secure Messaging field
  1. K DIR,DGMSACT D CLEAR
  1. N DINUM,DIR,ACTCNT,DGACDONE,DGSTAY,DGACSAVE,DGACCNT S DGACDONE=0,DGACSAVE=0
  1. D GETACTS(.DGMSACT,$G(DGMHVMOD)) S DGACCNT=+$O(DGMSACT(""),-1)
  1. S DIR(0)="SA^" S ACTCNT=0 F S ACTCNT=$O(DGMSACT(ACTCNT)) Q:'ACTCNT S DIR(0)=DIR(0)_ACTCNT_":"_DGMSACT(ACTCNT)_";"
  1. S $P(DIR(0),"^",3)="D ACTRNSFM^DGMHV"
  1. F Q:$G(DGACDONE) D ACTLOOP(.DIR,.DGMSACT,.ACTSEL)
  1. I $G(DGACSAVE),$D(ACTSEL)>1 D S DGMHVNOS=1 Q
  1. .I $G(DGENRQ),'$G(DGDPTSOC) S DGDPTSOC=DGENRQ
  1. .N DGSEL,DGAIEN,DGMHVND,DGPLURAL S DGSEL=0 F DGPLURAL=1:1 S DGSEL=$O(ACTSEL(DGSEL)) Q:'DGSEL D
  1. ..N DIE,DA,DIC S DGAIEN=$G(ACTSEL(DGSEL,"IEN")),DIC(0)="EZ",DIC="^DPT("_DFN_",1,"_DGDPTSOC_",1,",DA(3)=DFN,DA(2)=DGDPTSOC
  1. ..S DA(1)=$O(^DPT(DFN,1,DA(2),1,"A"),-1)+1,DINUM=DA(1),X=DGAIEN,DGMHVND=DA(1),DIC("DR")=".01////"_DGAIEN D FILE^DICN I $G(DGENRQ) D
  1. ...N DA,DIE,DIC,RSPDT S RSPDT=$$NOW^XLFDT S DIE="^DPT(DFN,1,",DA(1)=DFN,DA=DGENRQ S DR=".01////"_RSPDT D ^DIE
  1. ..N DA,DIE,DIC K DIE,DIC,DA S DIE="^DPT("_DFN_",1,"_DGDPTSOC_",1,",DA(2)=DFN,DA(1)=DGDPTSOC,DA=$O(^DPT(DFN,1,DGDPTSOC,1,"A"),-1)
  1. ..S DR=".01////"_DGAIEN D ^DIE
  1. .W !,$S($G(DGPLURAL)=1:"Action",1:"Actions")," Filed...",! H .5
  1. S DGMHVOUT=1
  1. Q
  1. ACTLOOP(DIR,DGMSACT,ACTSEL) ; Redisplay and reprompt user for action(s) until they're filed, or user aborts
  1. D CLEAR
  1. S DGSTAY=1
  1. W !?2,"Action(s) taken today to assist patient with My HealtheVet registration."
  1. W !?2,"-----------------------------------------------------------------------"
  1. D ^DIR
  1. I Y="^"!$G(DIRUT) W !! N DGREALQ S DGREALQ=1 D Q
  1. .N DIR,Y S DIR(0)="Y",DIR("A",1)="My HealtheVet registration questions are required to continue with this patient."
  1. .S DIR("A")="Are you sure you want to quit " D ^DIR I $G(Y) S DGMHVOUT=1,DGACDONE=1,DGACSAVE=0,DGSTAY=0 Q
  1. .S DGSTAY=1
  1. I $G(Y)>0 N DGSELL F DGSELL=1:1:$L(Y,",") N DGSELIT S DGSELIT=$P(Y,",",DGSELL) I DGSELIT]"" M ACTSEL(DGSELIT)=DGMSACT(DGSELIT)
  1. F Q:'$G(DGSTAY) D
  1. .D CLEAR N DIR,SELAC,DGCNT,DGII S DGCNT=1,DGSTAY=0
  1. .S DIR("A",DGCNT)="",DGCNT=DGCNT+1
  1. .S DIR("A",DGCNT)="Actions Selected:"
  1. .S DGCNT=DGCNT+1,DIR("A",DGCNT)=" " ;"-----------------------------------------------------------------------"
  1. .S SELAC="" F DGII=1:1 S SELAC=$O(ACTSEL(SELAC)) Q:'SELAC D
  1. ..N SELACSUB,MARX S SELACSUB=0 D TXT(ACTSEL(SELAC),65) F S SELACSUB=$O(MARX(SELACSUB)) Q:'SELACSUB D
  1. ...S DGCNT=DGCNT+1 S DIR("A",DGCNT)=" "_$S(SELACSUB=1:SELAC_" - ",1:" ")_" "_MARX(SELACSUB)
  1. .S DGCNT=DGCNT+1 S DIR("A",DGCNT)=""
  1. .S DIR("A")=" (A)dd another, (D)elete an action, or <RET> to save and exit: ",DIR(0)="SAO^A:Add an Action;D:Delete an Action" D ^DIR W !
  1. .Q:Y="A"
  1. .I Y="D" S DGSTAY=1 D DELETE(.ACTSEL) Q
  1. .I Y="^" W !! N DGREALQ S DGREALQ=1 D Q
  1. ..N DIR,Y S DIR(0)="Y",DIR("A",1)="My HealtheVet registration information is required to continue with this patient."
  1. ..S DIR("A")="Are you sure you want to quit " D ^DIR I $G(Y) S DGMHVOUT=1,DGACDONE=1,DGACSAVE=0,DGSTAY=0 Q
  1. ..S DGSTAY=1
  1. .S DGACDONE=1,DGACSAVE=1
  1. Q
  1. GETACTS(DGMSACT,DGMHVMOD) ; Get actions from the MHV SOCIALIZATION ACTIONS (#390.02) file; screen by mode (DGMHVMOD)
  1. ; Input: DGMHVMOD - Mode; MHV functionality from which this is invoked. Used to screen selectable Actions.
  1. ; DGMSACT - Array containing appropriate MHV actions, after screening based on mode (DGMHVMOD).
  1. N ACTIEN,ACTCNT,ACTTXT,SELCNT,DGMHVSAT S ACTCNT=0,SELCNT=0
  1. S ACTIEN=0 F S ACTIEN=$O(^DGMHV(390.02,ACTIEN)) Q:'ACTIEN S ACTTXT=$P($G(^DGMHV(390.02,ACTIEN,3,1,0)),"^") I ACTTXT]"" D
  1. .N TXTND S TXTND=1 F S TXTND=$O(^DGMHV(390.02,ACTIEN,3,TXTND)) Q:'TXTND S ACTTXT=ACTTXT_" "_^DGMHV(390.02,ACTIEN,3,TXTND,0)
  1. .N ACTLLIST D ACTSCRN^DGMHVUTL(ACTIEN,.ACTLLIST) I ($G(DGMHVMOD)]"") Q:'$D(ACTLLIST(DGMHVMOD))
  1. .S ACTCNT=ACTCNT+1,SELCNT=SELCNT+1,DGMSACT(ACTCNT)=ACTTXT,DGMSACT(ACTCNT,"IEN")=ACTIEN
  1. .N MARX,ACTLINE D TXT(ACTTXT,65) S ACTLINE=0 F S ACTLINE=$O(MARX(ACTLINE)) Q:'ACTLINE D
  1. ..N DGDASH S DGDASH=$S(ACTLINE=1&(ACTCNT<10):ACTCNT_" - ",(ACTLINE=1&(ACTCNT>9)):ACTCNT_" - ",1:" ")
  1. ..S DIR("A",SELCNT)=" "_DGDASH_" "_MARX(ACTLINE) S SELCNT=SELCNT+1
  1. S DIR("A",SELCNT+1)=" "
  1. S DIR("A")=" Select an action or '^' to exit: "
  1. Q
  1. DELETE(DGACTD) ; Delete one previously selected action
  1. ; Input : DGACTD - Array of MHV actions selected by clerk.
  1. K DGDELDIR,DIR N DGDELAR,II,DGCNT,ZZ S DGCNT=0
  1. M DGDELAR=DGACTD
  1. ;
  1. K DGACTD M DGACTD=DGDELAR
  1. S DIR(0)="SAO^" S ZZ=0 F II=1:1 S ZZ=$O(DGDELAR(ZZ)) Q:'ZZ S DIR(0)=DIR(0)_ZZ_":"_DGDELAR(ZZ)_";"
  1. S DIR("A")="Select an action to delete: " D ^DIR I $G(Y)>0,$D(DGACTD(+Y)) K DGACTD(Y)
  1. W ! D CONT I '$D(DGACTD) S DGSTAY=0 D CLEAR
  1. Q
  1. REVERSE(PAD,DGREVTXT) ; Display DGREVTXT in reverse video
  1. N X,Y,IORVON,IORVOFF,DIR,DIRUT
  1. S X="IORVON;IORVOFF" S PAD=+$G(PAD)
  1. D ENDR^%ZISS
  1. W $CHAR(7) W ?PAD W:$D(IORVON) IORVON W DGREVTXT W:$D(IORVOFF) IORVOFF
  1. Q
  1. TXT(TXT,LEN) ; Split string into multiple LEN length lines
  1. ;* Input: TXT = TXT string
  1. ;* LEN = format length
  1. ;* Output: MARX array.
  1. N OLD,X1,Y D SPLIT K MARX
  1. S X=0,X1=1,Y="" F S X=$O(OLD(X)) Q:'X D
  1. . I $L(Y_OLD(X))>LEN S MARX(X1)=Y,X1=X1+1,Y="" D
  1. .. I $E(MARX(X1-1),$L(MARX(X1-1)))'=" " Q
  1. .. S MARX(X1-1)=$E(MARX(X1-1),1,$L(MARX(X1-1))-1)
  1. . S Y=Y_OLD(X)
  1. S:Y]"" MARX(X1)=Y
  1. S MARX=X1
  1. Q
  1. SPLIT ; * Split a word string into individual words.
  1. ;* Input: TXT - Line of text
  1. ;* Input: LEN - Maximum length one line of text will be limited to
  1. ;* Output: OLD(X)
  1. N BSD,NEWSTR,X,X1,Y
  1. S OLD(1)=TXT Q:$L(TXT)<LEN
  1. F BSD=" ","/","-" S:'$O(OLD(0)) OLD(1)=TXT D:TXT[BSD DELIM(BSD)
  1. I '$O(OLD(1)),($L(TXT)>LEN) D LEN(1,TXT) K OLD D
  1. . F X=0:0 S X=$O(NEWSTR(X)) Q:'X S OLD(X)=NEWSTR(X)
  1. Q
  1. LEN(X1,OLD) ;* Wrap word to next line if it doesn't fit the display length
  1. N X
  1. Q:$L(OLD)'>LEN
  1. S X=$E(OLD,1,($L(OLD)-1)) I X["/"!(X["-") Q
  1. I $L(OLD)>LEN F X=1:1 S NEWSTR(X1)=$E(OLD,((LEN*X)-LEN+1),(LEN*X)),X1=X1+1 Q:($L(OLD)'>(LEN*X))
  1. Q
  1. DELIM(BSD) ; Split a string into individual words
  1. ; Input: BSD - Characters considered delimiters between words (i.e., for identifying/splitting-up-and/or-separating words)
  1. ; Input: OLD(n) - Text array containing
  1. ; Output: OLD(n) - Array containing pdated
  1. K NEWSTR
  1. S X=0,X1=0 F S X=$O(OLD(X)) Q:'X F Y=1:1:$L(OLD(X),BSD) D
  1. . S X1=X1+1
  1. . S NEWSTR(X1)=$P(OLD(X),BSD,Y)
  1. . I $L(OLD(X),BSD)>1,(Y<$L(OLD(X),BSD)) S NEWSTR(X1)=NEWSTR(X1)_BSD
  1. . D LEN(.X1,NEWSTR(X1))
  1. K OLD F X=0:0 S X=$O(NEWSTR(X)) Q:'X S OLD(X)=NEWSTR(X)
  1. Q
  1. CLEAR ; Clear the display
  1. D CLEAR^VALM1
  1. D FULL^VALM1
  1. S VALMBCK="R"
  1. Q
  1. CONT ; Prompt to Continue
  1. N DIR S DIR(0)="E",DIR("A")="Press RETURN to continue" D ^DIR
  1. Q
  1. ACTRNSFM ; Transform action prompt input
  1. Q
  1. DSPLACT(DFN) ; Display all MHV actions associated with last 5 date/time stamps. If last action is one of the
  1. ; MHV Socialization actions, ask additional question about whether the patient was successfully enrolled/registered
  1. N TMPDT,LASTDT,DGACTDT,NXT1,NXT2,I,J,DGLACTS,DIC,DA,DGFLDAR S DGLACTS=""
  1. D GETLACT^DGMHVUTL(DFN,.DGLACTS)
  1. W !," Recent My HealtheVet actions taken by VistA Clerks "
  1. W !,"--------------------------------------------------------------------"
  1. D GETFLDS^DGMHVUTL(DFN,.DGFLDAR) I $O(DGFLDAR(0)) M DGLACTS=DGFLDAR
  1. I '$O(DGLACTS(0)) W !?8," - NONE - ",!! Q
  1. S LASTDT="" F S LASTDT=$O(DGLACTS(LASTDT)) Q:'LASTDT D
  1. .S DGACTDT=$$FMTE^XLFDT($P(LASTDT,"."),2) I ($L(DGACTDT)<8) D
  1. ..N NEWDT,IDT,DTPC F IDT=1:1:$L(DGACTDT,"/") D
  1. ...S DTPC=$P(DGACTDT,"/",IDT),DTPC=$TR($J(DTPC,2)," ",0),NEWDT=$G(NEWDT)_$S(IDT=1:"",1:"/")_DTPC
  1. ..I NEWDT?2N1"/"2N1"/"2N S DGACTDT=NEWDT
  1. .S NXT1=0 F I=1:1 S NXT1=$O(DGLACTS(LASTDT,NXT1)) Q:'NXT1 D
  1. ..S NXT2="" F J=1:1 S NXT2=$O(DGLACTS(LASTDT,NXT1,"TXT",NXT2)) Q:'NXT2 W ! D
  1. ...N DGSP S DGSP=$S($L($G(DGLACTS(LASTDT,NXT1,"IEN")))>1:" ",1:" ")
  1. ...W $S($G(TMPDT)'=LASTDT:DGACTDT,1:" ") W $S((J=1):DGSP_" ",1:" "),$G(DGLACTS(LASTDT,NXT1,"TXT",NXT2))
  1. ...S TMPDT=LASTDT
  1. D QUESUC^DGMHVUTL(DFN,.DGMHVOUT) Q:($G(DGMHVOUT)]"")
  1. Q
  1. ACTHLP ; Help at action prompt
  1. W !?5,"Please select one of the listed actions that most closely describes"
  1. W !?5,"the actions taken today to help this patient register in My HealtheVet."
  1. Q