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

AMHLEPOV.m

Go to the documentation of this file.
  1. AMHLEPOV ; IHS/CMI/LAB - NEW PROGRAM ;
  1. ;;4.0;IHS BEHAVIORAL HEALTH;**4**;JUN 18, 2010;Build 28
  1. ;
  1. ;
  1. ;GET POVS, ADD TO PROBLEM LIST, ADD TO PCC PROBLEM LIST
  1. ;CALLED IN RECORD ADD
  1. START ;EP
  1. D EN^XBNEW("EP^AMHLEPOV","AMH*")
  1. Q
  1. EP2 ;EP
  1. S APCDOVRR=""
  1. D EN^XBNEW("EP^AMHLEPOV","AMHR;AMHPAT;AMHLOC;AMHDATE;APCDOVRR;AMHGROUP")
  1. Q
  1. EP ;EP - ask for POV and file each
  1. I 'AMHR W !!,"NO RECORD DEFINED!!" D XIT Q
  1. I '$D(^AMHREC(AMHR)) W !!,"NO RECORD!!" D XIT Q
  1. S APCDOVRR=""
  1. F S AMHPOV="" D POV Q:AMHPOV=""
  1. D CHK
  1. D XIT
  1. Q
  1. CHK ;
  1. Q:$D(^AMHRPRO("AD",AMHR))
  1. W !!,$C(7),$C(7),"At least ONE POV is REQUIRED!!"
  1. S DIR(0)="Y",DIR("A")="Do you wish to exit and delete this record",DIR("B")="N" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $G(Y)=0 G EP
  1. Q
  1. POV ;
  1. D HPOV1^AMHLESM
  1. I $G(AMHDET)="S" W @IOF,!!?15,"******* PURPOSE OF VISIT *******",!
  1. S AMHDT=$P(AMHDATE,".")
  1. S DIC("A")=$S($G(AMHGROUP):"Enter another Problem (POV) for this patient: ",'$D(^AMHRPRO("AD",AMHR)):"Enter PRIMARY Problem-POV: ",1:"Enter ANOTHER Problem-POV: "),DIC("S")="I '$P(^(0),U,13)",DIC="^AMHPROB(",DIC(0)="AEMQ"
  1. W ! D ^DIC
  1. I Y=-1 D ^XBFMK Q
  1. S AMHPOV=$P(Y,U,2),AMHPOVP=+Y
  1. ;call FILE^DICN to file this POV
  1. FILE ;
  1. D ^XBFMK
  1. K DD,D0,DO,DINUM,DIC,DA,DR S DIC(0)="EL",DIC="^AMHRPRO(",DLAYGO=9002011.01,DIADD=1,X=AMHPOVP,DIC("DR")="" D FILE^DICN K DIC,DR,DIE,DIADD,DLAYGO,X,D0
  1. I Y=-1 D ^XBFMK,XIT W !!,$C(7),$C(7),"Behavioral Health POV failed!! Notify Site Manager." Q
  1. S AMHRPRO=+Y,AMHPOVR=^AMHRPRO(AMHRPRO,0)
  1. D ^XBFMK
  1. S DIE("NO^")="",DA=AMHRPRO,DIE="^AMHRPRO(",DR=".02////"_$G(AMHPAT)_";.03////"_AMHR_";.04 Provider Narrative.....:" S DIE("NO^")="" D CALLDIE^AMHLEIN
  1. S AMHPOVR=^AMHRPRO(AMHRPRO,0)
  1. I $P(AMHPOVR,U,4)="" S X=$E($P(^AMHPROB($P(AMHPOVR,U),0),U,2),1,$S($P(^DD(9999999.27,.01,0),U,5)[">160":159,1:79)),X=$TR(X,";"," "),DIE="^AMHRPRO(",DR=".04///"_X,DA=AMHRPRO S DIE("NO^")="" D CALLDIE^AMHLEIN
  1. I $D(Y) D ^XBFMK,XIT W !!,$C(7),$C(7),"DIE failed when updating POV" D PAUSE^AMHLEA Q
  1. S AMHPOVR=^AMHRPRO(AMHRPRO,0)
  1. S AMHNARR=$S($P(AMHPOVR,U,4):$P(^AUTNPOV($P(AMHPOVR,U,4),0),U),1:"<NO PROVIDER NARRATIVE RECORDED>")
  1. Q:$G(AMHVTYPE)'="R"
  1. I '$G(AMHGROUP) D BHPROB
  1. I '$G(AMHGROUP) D PCCPROB
  1. Q
  1. BHPROB ;add to BH Problem List?
  1. Q:'$G(AMHPAT) ;not if no patient
  1. Q:$P(^AMHREC(AMHR,0),U,8)="" ;no patient
  1. W ! S DIR(0)="Y",DIR("A")="ADD this PROBLEM to the BH PROBLEM LIST",DIR("B")="N",DIR("?")="If the Provider has checked the box labeled ADD TO BH PROBLEM LIST, answer YES" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. Q:$D(DIRUT)
  1. Q:'Y
  1. ADDBH ;
  1. D ^AMHDMHPL
  1. W !,"Add this problem - ",$P(^AMHPROB(AMHPOVP,0),U)," - ",$P(^AMHPROB(AMHPOVP,0),U,2) S DIR(0)="Y",DIR("A")=" to the BH Problem List",DIR("B")="N" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. Q:$D(DIRUT)
  1. Q:'Y
  1. S AMHTX=0,AMHTY="" F S AMHTY=$O(^AMHPPROB("AA",AMHPAT,AMHTY)) Q:AMHTY="" S AMHTX=$E(AMHTY,2,4)
  1. S AMHTX=AMHTX+1 K AMHTY
  1. K DD,D0,DO,DINUM,DIC,DA,DR S DIC(0)="EL",DIC="^AMHPPROB(",DLAYGO=9002011.51,DIADD=1,X=AMHPOVP,DIC("DR")=""
  1. K DD,D0,DO D FILE^DICN K DIC,DR,DIE,DIADD,DLAYGO,X,D0
  1. I Y=-1 D ^XBFMK,XIT W !!,$C(7),$C(7),"Behavioral Health PROBLEM ADD failed!! Notify Site Manager." D PAUSE^AMHLEA Q
  1. S AMHPIEN=+Y
  1. S APCDOVRR=""
  1. S DA=AMHPIEN,DIE="^AMHPPROB(",DR=".02////"_AMHPAT_";.03///^S X=AMHDT;.08///^S X=AMHDT;.05///"_AMHNARR_";.06////"_$S($G(AMHLOC):AMHLOC,1:DUZ(2))_";.07///"_AMHTX_";.12//A;.13" S DIE("NO^")="" D CALLDIE^AMHLEIN
  1. I $D(Y) W !!,$C(7),"Adding a BH Problem FAILED!" D PAUSE^AMHLEA Q
  1. S DIE="^AMHPPROB(",DA=AMHPIEN,DR="[AMH ADD TREATMENT NOTES/POV]" D CALLDIE^AMHLEIN
  1. I $D(Y) W !!,"Updating NOTES failed." Q
  1. Q
  1. PCCPROB ;add to PCC Problem List?
  1. Q:'$$ASKPCC^AMHLEIN(DUZ(2))
  1. Q:'$G(AMHPAT)
  1. Q:$P(^AMHPROB(AMHPOVP,0),U,5)=""
  1. I $P(^AMHPROB(AMHPOVP,0),U,8),'$P(^(0),U,12) Q
  1. S DIR(0)="Y",DIR("A")="ADD this PROBLEM to the PCC PROBLEM LIST",DIR("B")="N",DIR("?")="If the Provider has checked the box labeled ADD TO PCC PROBLEM LIST, answer YES" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. W !
  1. Q:$D(DIRUT)
  1. Q:'Y
  1. ;
  1. ADDPCC ;
  1. I $G(AMHLOC)="" S AMHLOC=DUZ(2)
  1. D ^AMHPROB
  1. W !,"Add problem - ",$P(^AMHPROB(AMHPOVP,0),U)," - ",$P(^AMHPROB(AMHPOVP,0),U,2) S DIR(0)="Y",DIR("A")=" to the PCC PROBLEM LIST",DIR("B")="N" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. Q:$D(DIRUT)
  1. Q:'Y
  1. S X=0,Y="" F S Y=$O(^AUPNPROB("AA",AMHPAT,AMHLOC,Y)) Q:Y="" S X=$E(Y,2,4)
  1. S AMHNUM=X+1
  1. S X=$P(^AMHPROB($P(AMHPOVR,U),0),U,5)
  1. Q:X=""
  1. S X=+$$CODEN^ICDCODE(X,80)
  1. Q:X=""
  1. Q:X=-1
  1. S X="`"_X,DIC="^AUPNPROB(",DIADD=1,DLAYGO=9000011,DIC(0)="L" D ^DIC K DIC,DIADD,DLAYGO I Y=-1 D ^XBFMK,XIT W !!,"ERROR WHILE ATTEMPTING TO UPDATE PCC PROBLEM LIST" Q
  1. ;get appropriate narrative to pass
  1. S APCDOVRR=""
  1. W !,"This is the narrative that the rest of the Medical community will see on the PCC",!,"Problem List on the PCC Health Summary. You may change it now if desired.",!
  1. I AMHDET="R" S AMHNARR=$S('$P(^AMHPROB($P(AMHPOVR,U),0),U,12):$P(^AUTNPOV($P(AMHPOVR,U,4),0),U),1:$E($P(^AMHPROB($P(AMHPOVR,U),0),U,2),1,35)_" - "_$E($P(^AUTNPOV($P(AMHPOVR,U,4),0),U),1,40))
  1. S DA=+Y,DIE="^AUPNPROB(",DR=".02////"_AMHPAT S Y=AMHDT D DD^%DT S DR=DR_";.03///"_Y_";.05//"_$G(AMHNARR)_";.06////"_AMHLOC_";.07////"_AMHNUM_";.08///"_Y_";.12///A;.13"
  1. D CALLDIE^AMHLEIN K DA,DIE,DR,DIU,DIV,DIW
  1. W !
  1. I $D(Y) W !!,"ERROR WHILE ATTEMPTING TO UPDATE PCC PROBLEM LIST!!"
  1. K AMHNUMB,X,Y
  1. Q
  1. XIT ;
  1. K DIADD,DLAYGO
  1. K AMHTX,AMHTY,AMHNARR,AMHLEPT,AMHNUM,AMHPOV,AMHPOVP,AMHPOVR,AMHRPRO,AMHDT,AMHLOOK
  1. Q
  1. EN ;EP add to mhss problem list - screen man call
  1. D EN^XBNEW("EN1^AMHLEPOV","AMH*") ; new everthing except AMH*
  1. Q
  1. ;
  1. EN1 ; ENTRY POINT FOR ^XBNEW
  1. W:$D(IOF) @IOF
  1. S AMHDT=$P(AMHDATE,".")
  1. D ADDBH
  1. D XIT
  1. Q
  1. EN2 ;EP add to pcc problem list - screen man call
  1. D EN^XBNEW("EN3^AMHLEPOV","AMH*")
  1. Q
  1. EN3 ;
  1. W:$D(IOF) @IOF
  1. S AMHDT=$P(AMHDATE,".")
  1. I '$$ASKPCC^AMHLEIN(DUZ(2)) W !!,"PARAMETER SET TO NO PCC PROBLEM LIST UPDATING",! H 5 Q
  1. Q:'$G(AMHPAT)
  1. I $P(^AMHPROB(AMHPOVP,0),U,5)="" W !!,"THIS PROBLEM CODE CANNOT BE ADDED TO A PCC PROBLEM LIST!!",!! H 5 Q
  1. I $P(^AMHPROB(AMHPOVP,0),U,8)=1 W !!,"THIS PROBLEM CODE CANNOT BE ADDED TO A PCC PROBLEM LIST!!",!! H 5 Q
  1. I '$G(AMHLOC) S AMHLOC=$$GET^DDSVAL(9002011,AMHR,".04","I")
  1. D ADDPCC
  1. Q