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

AMHBPL3.m

Go to the documentation of this file.
  1. AMHBPL3 ; IHS/CMI/LAB - problem list update from list manager ;
  1. ;;4.0;IHS BEHAVIORAL HEALTH;**2**;JUN 18, 2010;Build 23
  1. ;
  1. NAP ;EP - called from protocol to add a problem to problem list
  1. NEW AMHPRV,AMHD
  1. D FULL^VALM1
  1. I $$ANYACTP^AMHAPRB(AMHPAT) D Q
  1. .W !!,"There are ACTIVE Problems on this patient's BH Problem list. You"
  1. .W !,"cannot use this action item."
  1. .D PAUSE^AMHBPL1,EXIT^AMHBPL1 Q
  1. NAPDE1 ;EP - called from xbnew
  1. S DIR(0)="Y",DIR("A")="Did the Provider indicate that the patient has No Active BH Problems",DIR("B")="Y" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) W !,"No action taken." D PAUSE^AMHBPL1,EXIT^AMHBPL1 Q
  1. I 'Y W !,"No action taken." D PAUSE^AMHBPL1,EXIT^AMHBPL1 Q
  1. S DIR(0)="D^::EPTSX",DIR("A")="Enter the Date the Provider documented 'No Active BH Problems'"
  1. S DIR("B")=$$FMTE^XLFDT(DT),DIR("?")="This is the visit date or the date the provider provided the information."
  1. KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) W !!,"This is required." G NAPDE1
  1. I $P(Y,".")>DT W !!,"Future Dates not allowed.",! G NAPDE1
  1. S AMHD=Y
  1. NAPDE1P ;GET PROVIDER
  1. S DIR(0)="9002011.14,1204",DIR("A")="Enter the PROVIDER who documented 'No Active BH Problems'"
  1. S DIR("B")=$$PRIMPROV^AMHUTIL(AMHR,"N") KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) W !!,"This is required." G NAPDE1P
  1. S AMHPRV=+Y
  1. D NAPADD(AMHR,AMHPAT,AMHD,AMHPRV,.AMHRET)
  1. I $P(AMHRET,U,1)=0 W !!,"error: ",$P(AMHRET,U,2)
  1. D PAUSE^AMHBPL1,EXIT^AMHBPL1
  1. Q
  1. NAPADD(AMHV,AMHP,AMHD,AMHPRV,RETVAL) ;PEP - called to update BH Problem list update fields
  1. ;this API can be called to have a MHSS RECORD UPDATED/REVIEWED entry and populate the
  1. ;
  1. ;RETURN VALUE:
  1. ; ien of MHSS RECORD UPDATED/REVIEWED entry that was created
  1. ; or 0^error message
  1. S AMHV=$G(AMHV)
  1. S AMHP=$G(AMHP)
  1. I 'AMHP S RETVAL="0^not a valid patient DFN" Q
  1. I '$D(^AUPNPAT(AMHP,0)) S RETVAL="0^not a valid patient DFN" Q
  1. S AMHD=$G(AMHD)
  1. I 'AMHD S RETVAL="0^no valid date passed" Q
  1. S AMHPRV=$G(AMHPRV)
  1. I 'AMHPRV S RETVAL="0^no valid provider ien passed" Q
  1. S RETVAL=""
  1. ;
  1. I AMHV D NAPV Q
  1. Q
  1. NAPV ;have a visit so create a MHSS RECORD updated/reviewed for provider AMHPRV if one does
  1. ;not exist on this visit already.
  1. NEW AMHX,AMHVD,AMHVRI,AMHVAL
  1. S AMHVAL=$O(^AUTTCRA("C","NAP",0))
  1. I AMHVAL="" S RETVAL="0^action item missing" Q
  1. S AMHVRI=""
  1. S AMHX=0 F S AMHX=$O(^AMHRRUP("AD",AMHV,AMHX)) Q:AMHX=""!(AMHVRI) D
  1. .;is this entry a problem list review entry?
  1. .Q:$P(^AMHRRUP(AMHX,0),U,1)'=AMHVAL ;this one isn't a NAP entry
  1. .Q:$P($G(^AMHRRUP(AMHX,2)),U,1)
  1. .Q:$P($G(^AMHRRUP(AMHX,12)),U,4)'=AMHPRV ;not this provider
  1. .S AMHVRI=AMHX ;found one so don't create one
  1. .Q
  1. I AMHVRI S RETVAL=AMHVRI D PLRV Q
  1. S DIC="^AMHRRUP(",X=AMHVAL,DIC("DR")=".02////"_AMHP_";.03////"_AMHV_";1201////"_AMHD_";1204////"_AMHPRV,DIADD=1,DLAYGO=9002011.14,DIC(0)="EL"
  1. D FILE^DICN
  1. K DLAYGO,DIADD,DIC,DA
  1. D PLRV
  1. Q
  1. PLR ;EP - called from protocol to add a problem to problem list
  1. NEW AMHPIEN,AMHNDT
  1. D FULL^VALM1
  1. PLRDE1 ;EP - called from xbnew
  1. S DIR(0)="Y",DIR("A")="Did the Provider indicate that he/she reviewed the Problem List",DIR("B")="Y" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) W !,"No action taken." D PAUSE^AMHBPL1,EXIT^AMHBPL1 Q
  1. I 'Y W !,"No action taken." D PAUSE^AMHBPL1,EXIT^AMHBPL1 Q
  1. S DIR(0)="D^::EPTSX",DIR("A")="Enter the Date the Provider Reviewed the Problem List"
  1. S DIR("B")=$$FMTE^XLFDT(DT),DIR("?")="This is the visit date or the date the provider provided the information."
  1. KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) W !!,"This is required." G PLRDE1
  1. I $P(Y,".")>DT W !!,"Future Dates not allowed.",! G PLRDE1
  1. S AMHD=Y
  1. PLRDE1P ;GET PROVIDER
  1. S DIR(0)="9002011.14,1204",DIR("A")="Enter the PROVIDER who Reviewed the Problem List"
  1. S DIR("B")=$$PRIMPROV^AMHUTIL(AMHR,"N") KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) W !!,"This is required." G PLRDE1P
  1. S AMHPRV=+Y
  1. D PLRADD(AMHR,AMHPAT,AMHD,AMHPRV,.AMHRET)
  1. I $P(AMHRET,U,1)=0 W !!,"error: ",$P(AMHRET,U,2)
  1. D PAUSE^AMHBPL1,EXIT^AMHBPL1
  1. Q
  1. PLRADD(AMHV,AMHP,AMHD,AMHPRV,RETVAL) ;PEP - called to update Problem list update fields
  1. ;this API can be called to have a V UPDATED/REVIEWED entry and populate the
  1. ;
  1. ;RETURN VALUE:
  1. ; ien of V UPDATED/REVIEWED entry that was created
  1. ; or 0^error message
  1. S AMHPIEN=$G(AMHPIEN)
  1. S AMHV=$G(AMHV)
  1. S AMHP=$G(AMHP)
  1. I 'AMHP S RETVAL="0^not a valid patient DFN" Q
  1. I '$D(^AUPNPAT(AMHP,0)) S RETVAL="0^not a valid patient DFN" Q
  1. S AMHD=$G(AMHD)
  1. I 'AMHD S RETVAL="0^no valid date passed" Q
  1. S AMHPRV=$G(AMHPRV)
  1. I 'AMHPRV S RETVAL="0^no valid provider ien passed" Q
  1. S RETVAL=""
  1. ;
  1. I AMHV D PLRV Q
  1. Q
  1. PLRV ;have a visit so create a v updated/reviewed for provider AMHPRV if one does
  1. ;not exist on this visit already.
  1. NEW AMHX,AMHVD,AMHVRI,AMHVAL
  1. S AMHVAL=$O(^AUTTCRA("C","PLR",0))
  1. I AMHVAL="" S RETVAL="0^action item missing" Q
  1. S AMHVRI=""
  1. S AMHX=0 F S AMHX=$O(^AMHRRUP("AD",AMHV,AMHX)) Q:AMHX=""!(AMHVRI) D
  1. .;is this entry a problem list review entry?
  1. .Q:$P(^AMHRRUP(AMHX,0),U,1)'=AMHVAL ;this one isn't a PLR entry
  1. .Q:$P($G(^AMHRRUP(AMHX,2)),U,1)
  1. .Q:$P($G(^AMHRRUP(AMHX,12)),U,4)'=AMHPRV ;not this provider
  1. .S AMHVRI=AMHX ;found one so don't create one
  1. .Q
  1. I AMHVRI S RETVAL=AMHVRI Q
  1. S DIC="^AMHRRUP(",X=AMHVAL,DIC("DR")=".02////"_AMHP_";.03////"_AMHV_";1201////"_AMHD_";1204////"_AMHPRV,DIADD=1,DLAYGO=9002011.14,DIC(0)="EL"
  1. D FILE^DICN
  1. K DLAYGO,DIADD,DIC,DA
  1. Q
  1. ;