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

APCDPL.m

Go to the documentation of this file.
  1. APCDPL ; IHS/CMI/LAB - PROBLEM LIST UPDATE ;
  1. ;;2.0;IHS PCC SUITE;**2,5,6,10**;MAY 14, 2009;Build 88
  1. ;; ;
  1. START ;
  1. W:$D(IOF) @IOF
  1. F J=1:1:5 S X=$P($T(TEXT+J),";;",2) W !?80-$L(X)\2,X
  1. K X,J
  1. W !!
  1. S APCDPLPT="" F D GETPAT Q:APCDPLPT="" S DFN=APCDPLPT D EN1,FULL^VALM1,EXIT K APCDPLPT
  1. D EOJ
  1. Q
  1. GETPAT ;get patient
  1. K ^TMP($J,"APCDPL")
  1. K APCDPLPT,APCDLOC,APCDPAT,APCDDATE,APCDPIEN,APCDAF,APCDPRB,APCDOVRR,APCDLOOK,APCDPDFN
  1. D KILL^AUPNPAT
  1. S APCDPLPT=""
  1. I '$P($G(^APCDSITE(DUZ(2),0)),U,34) S AUPNLK("INAC")=1
  1. W !
  1. S DIC="^AUPNPAT(",DIC(0)="AEMQ" D ^DIC K DIC
  1. Q:Y<0
  1. S APCDPLPT=+Y
  1. D INAC^APCDEA(APCDPLPT,.X) I 'X S APCDPLPT="" Q
  1. Q
  1. GETLOC ;
  1. S APCDLOC="",DIC="^AUTTLOC(",DIC(0)="AEMQ",DIC("B")=$P(^DIC(4,$S($G(APCDLOC):APCDLOC,1:DUZ(2)),0),U),DIC("A")="Location where Problem List update occurred: " D ^DIC K DIC
  1. Q:Y<0
  1. S APCDLOC=+Y
  1. Q
  1. GETDATE ;
  1. S APCDDATE=""
  1. W !!,"Date Problem List Updated: " R X:$S($D(DTIME):DTIME,1:300) S:'$T X=""
  1. Q:X=""!(X="^")
  1. S %DT="ET" D ^%DT G:Y<0 GETDATE
  1. I Y>DT W " <Future dates not allowed>",$C(7),$C(7) K X G GETDATE
  1. S APCDDATE=Y
  1. Q
  1. EOJ ;End of job cleanup
  1. D:$D(VALMWD) CLEAR^VALM1 ;clears out all list man stuff
  1. K ^TMP($J,"APCDPL")
  1. K XQORNEST,VALMKEY,VALM,VALMAR,VALMBCK,VALMBG,VALMCAP,VALMCNT,VALMOFF,VALMMCON,VALMDN,VALMEVL,VALMIOXY,VALMKEY,VALMLFT,VALMLST,VALMMENU,VALMSGR,VALMUP,VALMWD,VALMY,XQORS,XQORSPEW
  1. K APCDPLPT,APCDLOC,APCDPAT,APCDDATE,APCDPIEN,APCDAF,APCDPRB,APCDOVRR,APCDLOOK,APCDPDFN
  1. D KILL^AUPNPAT
  1. Q
  1. EN1 ;PEP - requires DFN to be set to patient
  1. K ^TMP($J,"APCDPL")
  1. Q:'$G(DFN)
  1. S APCDPLPT=DFN
  1. Q:'$G(APCDPLPT)
  1. Q:'$D(^AUPNPAT(APCDPLPT))
  1. Q:'$D(^DPT(APCDPLPT))
  1. S Y=APCDPLPT D ^AUPNPAT
  1. D GETLOC
  1. I '$G(APCDLOC) D EXIT Q
  1. D GETDATE
  1. I '$G(APCDDATE) D EXIT Q
  1. S APCDOVRR=1
  1. D EN
  1. K APCDPLPT
  1. D FULL^VALM1
  1. D EXIT
  1. Q
  1. EN2 ;PEP - can be called to update problem list, called from applications outside of PCC
  1. D GETPAT
  1. D EN
  1. D FULL^VALM1
  1. D EXIT
  1. Q
  1. ENDE ;EP - for data entry PL call
  1. Q:'$G(DFN)
  1. S APCDPLPT=DFN
  1. Q:'$G(APCDPLPT)
  1. Q:'$D(^AUPNPAT(APCDPLPT))
  1. Q:'$D(^DPT(APCDPLPT))
  1. S Y=APCDPLPT D ^AUPNPAT
  1. S APCDLOC=APCDPLL
  1. I '$G(APCDLOC) D EXIT Q
  1. S APCDDATE=APCDPLD
  1. I '$G(APCDDATE) D EXIT Q
  1. S APCDV=$G(APCDPLV)
  1. I APCDV<0 S APCDV=""
  1. S APCDOVRR=1
  1. D EN
  1. K APCDPLPT
  1. D FULL^VALM1
  1. D EXIT
  1. Q
  1. EN ;PEP main entry point for APCD PL PROBLEM LIST
  1. S VALMCC=1 ;1 means screen mode, 0 means scrolling mode
  1. D EN^VALM("APCD PL PROBLEM LIST")
  1. D CLEAR^VALM1
  1. Q
  1. ;
  1. HDR ;EP -- header code
  1. S VALMHDR(1)=$TR($J(" ",80)," ","-")
  1. S VALMHDR(2)="Patient Name: "_IORVON_$P(^DPT(APCDPLPT,0),U)_IORVOFF_" DOB: "_$$FTIME^VALM1(AUPNDOB)_" Sex: "_$P(^DPT(APCDPLPT,0),U,2)_" HRN: "_$S($D(^AUPNPAT(APCDPLPT,41,DUZ(2),0)):$P(^AUPNPAT(APCDPLPT,41,DUZ(2),0),U,2),1:"????")
  1. S VALMHDR(3)=$TR($J(" ",80)," ","-")
  1. Q
  1. ;
  1. INIT ; -- init variables and list array
  1. D GATHER ;gather up all problems
  1. S VALMCNT=APCDLINE ;this variable must be the total number of lines in list
  1. S APCDOVRR="" ;for provider narrative lookup
  1. Q
  1. ;
  1. GATHER ;EP
  1. ;set up array containing list of problems
  1. ;**** see page 7 of List Manager Manual for info on how to
  1. ;**** set up the array that contains the list
  1. K ^TMP($J,"APCDPL")
  1. NEW APCDSX
  1. K APCDQUIT,APCDPL S APCDRCNT=0,APCDLINE=0
  1. I '$D(^AUPNPROB("AC",APCDPLPT)) S ^TMP($J,"APCDPL",1,0)="No Problems currently on file",^TMP($J,"APCDPL","IDX",1,1)="" S APCDLINE=1 ;Q
  1. S APCDSX=$$LASTPLR^APCLAPI6(APCDPLPT,,DT,"A")
  1. I APCDSX S APCDLINE=APCDLINE+1,^TMP($J,"APCDPL",APCDLINE,0)="Problem List Reviewed On: "_$$FMTE^XLFDT($P(APCDSX,U,1))_" By: "_$E($P($G(^VA(200,+$P(APCDSX,U,3),0)),U),1,25)
  1. S APCDSX=$$LASTPLU^APCLAPI6(APCDPLPT,,DT,"A")
  1. I APCDSX S APCDLINE=APCDLINE+1,^TMP($J,"APCDPL",APCDLINE,0)="Problem List Updated On: "_$$FMTE^XLFDT($P(APCDSX,U,1))_" By: "_$E($P($G(^VA(200,+$P(APCDSX,U,3),0)),U),1,25)
  1. S APCDSX=$$LASTNAP^APCLAPI6(APCDPLPT,,DT,"A")
  1. ;I '$$ANYACTP^APCDAPRB(APCDPLPT),APCDSX S APCDLINE=APCDLINE+1,^TMP($J,"APCDPL",APCDLINE,0)="No Active Problems: "_$$FMTE^XLFDT($P(APCDSX,U,1))_" Documented By: "_$E($P($G(^VA(200,+$P(APCDSX,U,3),0)),U),1,25)
  1. I APCDSX S APCDLINE=APCDLINE+1,^TMP($J,"APCDPL",APCDLINE,0)="No Active Problems Documented On: "_$$FMTE^XLFDT($P(APCDSX,U,1))_" By: "_$E($P($G(^VA(200,+$P(APCDSX,U,3),0)),U),1,25)
  1. S APCDLINE=APCDLINE+1,^TMP($J,"APCDPL",APCDLINE,0)=" "
  1. S APCDRCNT=0
  1. S APCDAF="ASOE" D GATHER1 S APCDAF="IR" D GATHER1
  1. Q
  1. GATHER1 ;
  1. S APCDF=0 F S APCDF=$O(^AUPNPROB("AA",APCDPLPT,APCDF)) Q:APCDF'=+APCDF D
  1. .S APCDPRB="" F S APCDPRB=$O(^AUPNPROB("AA",APCDPLPT,APCDF,APCDPRB)) Q:APCDPRB="" S APCDPIEN=$O(^(APCDPRB,"")),APCDP0=^AUPNPROB(APCDPIEN,0) I APCDAF[$P(^AUPNPROB(APCDPIEN,0),U,12) D
  1. ..S APCDRCNT=APCDRCNT+1,APCDLINE=APCDLINE+1,^TMP($J,"APCDPL","IDX",APCDLINE,APCDRCNT)=APCDPIEN,APCDX=""
  1. ..S APCDX=$$SETSTR^VALM1($J(APCDRCNT,2),APCDX,3,2),APCDX=$$SETSTR^VALM1(") Problem ID:",APCDX,5,14),X=$S($P(^AUTTLOC(APCDF,0),U,7)]"":$J($P(^(0),U,7),4),1:"??")_$P(APCDP0,U,7),APCDX=$$SETSTR^VALM1(X,APCDX,19,8)
  1. ..S APCDX=$$SETSTR^VALM1("DX:",APCDX,28,3),APCDX=$$SETSTR^VALM1($$VAL^XBDIQ1(9000011,APCDPIEN,.01),APCDX,32,8),X="Status: "_$E($$EXTSET^XBFUNC(9000011,.12,$P(APCDP0,U,12)),1,9),APCDX=$$SETSTR^VALM1(X,APCDX,41,25)
  1. ..S APCDX=$$SETSTR^VALM1("Onset:",APCDX,66,6) I $P(APCDP0,U,13)]"" S APCDX=$$SETSTR^VALM1($$FMTE^XLFDT($P(APCDP0,U,13),"2D"),APCDX,73,17)
  1. ..S ^TMP($J,"APCDPL",APCDLINE,0)=APCDX,APCDX="",^TMP($J,"APCDPL","IDX",APCDLINE,APCDRCNT)=APCDPIEN
  1. ..S APCDLINE=APCDLINE+1,APCDX=$$GET1^DIQ(9000011,APCDPIEN,.05),^TMP($J,"APCDPL",APCDLINE,0)=" Provider Narrative: "_IOINHI_APCDX_IOINORM,^TMP($J,"APCDPL","IDX",APCDLINE,APCDRCNT)=APCDPIEN
  1. ..I $$ASKCL^AUPNVPLC($P(APCDP0,U)) S APCDLINE=APCDLINE+1,APCDX=$$VAL^XBDIQ1(9000011,APCDPIEN,.15),^TMP($J,"APCDPL",APCDLINE,0)=" Classification: "_IOINHI_APCDX_IOINORM,^TMP($J,"APCDPL","IDX",APCDLINE,APCDRCNT)=APCDPIEN
  1. ..I $P(APCDP0,U,16)!($P(APCDP0,U,17))!($P(APCDP0,U,18)) D
  1. ...S APCDLINE=APCDLINE+1,APCDX=" E Code: "_$$VAL^XBDIQ1(9000011,APCDPIEN,.16)
  1. ...I $P(APCDP0,U,17) S APCDX=APCDX_" E Code 2: "_$$VAL^XBDIQ1(9000011,APCDPIEN,.17)
  1. ...I $P(APCDP0,U,18) S APCDX=APCDX_" E Code 3: "_$$VAL^XBDIQ1(9000011,APCDPIEN,.18)
  1. ...S ^TMP($J,"APCDPL",APCDLINE,0)=APCDX,APCDX="",^TMP($J,"APCDPL","IDX",APCDLINE,APCDRCNT)=APCDPIEN
  1. ..S X=$$GET1^DIQ(9000011,APCDPIEN_",",80001) I X]"" S APCDLINE=APCDLINE+1,APCDX=" SNOMED CONCEPT ID: "_X,^TMP($J,"APCDPL",APCDLINE,0)=APCDX,^TMP($J,"APCDPL","IDX",APCDLINE,APCDRCNT)=APCDPIEN
  1. ..I $O(^AUPNPROB(APCDPIEN,13,0)) S APCDX=" Severity:" D
  1. ...S X=0 F S X=$O(^AUPNPROB(APCDPIEN,13,X)) Q:X'=+X S APCDX=APCDX_" "_$$GET1^DIQ(9000011.13,X_","_APCDPIEN,.01)
  1. ...S APCDLINE=APCDLINE+1,^TMP($J,"APCDPL",APCDLINE,0)=APCDX,APCDX="",^TMP($J,"APCDPL","IDX",APCDLINE,APCDRCNT)=APCDPIEN
  1. NOTE ..S APCDC=0 I $O(^AUPNPROB(APCDPIEN,11,0)) D
  1. ...S (APCDC,APCDL)=0 F S APCDL=$O(^AUPNPROB(APCDPIEN,11,APCDL)) Q:APCDL'=+APCDL I $O(^AUPNPROB(APCDPIEN,11,APCDL,11,0)) S APCDLR=$P(^AUTTLOC($P(^AUPNPROB(APCDPIEN,11,APCDL,0),U),0),U,7) D
  1. ....S APCDX=0 F S APCDX=$O(^AUPNPROB(APCDPIEN,11,APCDL,11,APCDX)) Q:APCDX'=+APCDX D
  1. .....S APCDC=APCDC+1 I APCDC=1 S X=IOINORM_" "_IORVON_"Comments:"_IORVOFF S APCDLINE=APCDLINE+1,^TMP($J,"APCDPL",APCDLINE,0)=X,^TMP($J,"APCDPL","IDX",APCDLINE,APCDRCNT)=APCDPIEN
  1. .....S X=" "_APCDLR_" Comment#"_$P(^AUPNPROB(APCDPIEN,11,APCDL,11,APCDX,0),U)_" "_$S($P(^(0),U,5)]"":$$FMTE^XLFDT($P(^(0),U,5),5),1:" ")_" "_$P(^AUPNPROB(APCDPIEN,11,APCDL,11,APCDX,0),U,3)
  1. .....S APCDLINE=APCDLINE+1,^TMP($J,"APCDPL",APCDLINE,0)=X,^TMP($J,"APCDPL","IDX",APCDLINE,APCDRCNT)=APCDPIEN
  1. ..S APCDLINE=APCDLINE+1,^TMP($J,"APCDPL",APCDLINE,0)=IOINORM_" ",^TMP($J,"APCDPL","IDX",APCDLINE,APCDRCNT)=APCDPIEN
  1. ..Q
  1. .Q
  1. K APCDLR,APCDL,APCDX,APCDF
  1. Q
  1. TEXT ;
  1. ;;Patient Care Component (PCC)
  1. ;;
  1. ;;***********************************
  1. ;;* Update PCC Patient Problem List *
  1. ;;***********************************
  1. ;;
  1. Q
  1. HELP ; -- help code
  1. S X="?" D DISP^XQORM1 W !!
  1. Q
  1. ;
  1. EXIT ; -- exit code
  1. K ^TMP($J,"APCDPL")
  1. K APCDRCNT,APCDPL,APCDLINE,APCDX,APCDP0,APCDC,APCDL,APCDLR,APCDPIEN,APCDAF,APCDPRB,APCDOVRR,APCDLOOK,APCDPDFN,APCDLOC,APCDDATE
  1. K X,Y
  1. K VALMHDR
  1. Q
  1. ;
  1. EXPND ; -- expand code
  1. Q
  1. ;