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

APCDPROB.m

Go to the documentation of this file.
  1. APCDPROB ; IHS/CMI/LAB - Display Problems and Notes ;
  1. ;;2.0;IHS PCC SUITE;**5,11,16**;MAY 14, 2009;Build 9
  1. ;Called from data entry templates to display problems, APCDPAT must equal the patient DFN
  1. NEW APCDQUIT,APCDSX
  1. S APCDQUIT=0
  1. W:$D(IOF) @IOF
  1. S APCDTCVD="S:Y]"""" Y=+Y,Y=$E(Y,4,5)_""/""_$E(Y,6,7)_""/""_(1700+$E(Y,1,3))"
  1. ;get date last reviewed and display
  1. S APCDSX=$$LASTPLR^APCLAPI6(APCDPAT,,DT,"A")
  1. W !,"Problem List Reviewed On: ",?24,$$FMTE^XLFDT($P(APCDSX,U,1)) W ?51,"By: ",?54,$E($S($P(APCDSX,U,3):$P($G(^VA(200,$P(APCDSX,U,3),0)),U),1:""),1,25),!
  1. S APCDSX=$$LASTPLU^APCLAPI6(APCDPAT,,DT,"A")
  1. W "Problem List Updated On: ",?36,$$FMTE^XLFDT($P(APCDSX,U,1)) W ?51,"By: ",?54,$E($S($P(APCDSX,U,3):$P($G(^VA(200,$P(APCDSX,U,3),0)),U),1:""),1,25),!
  1. S APCDSX=$$LASTNAP^APCLAPI6(APCDPAT,,DT,"A")
  1. W "No Active Problems Documented On: ",?36,$$FMTE^XLFDT($P(APCDSX,U,1)) W ?51,"By: ",$E($S($P(APCDSX,U,3):$P($G(^VA(200,$P(APCDSX,U,3),0)),U),1:""),1,25),!
  1. S APCDTTAT="ASEOR" D COMMON I 'APCDQUIT S APCDTTAT="I" D COMMON
  1. K APCDTCVD,APCDTQ,Y
  1. D PROBX
  1. I $Y>(IOSL-5)&('APCDQUIT) W !!,"Press return to continue " R X:DTIME K X
  1. K X
  1. Q
  1. COMMON ;
  1. ;I '$D(^AUPNPROB("AC",APCDPAT)) W !!,"********** No ",$S(APCDTTAT="A":"ACTIVE",1:"INACTIVE/RESOLVED")," Problems on file for this Patient",! Q
  1. I '$D(^AUPNPROB("AC",APCDPAT)) W !!,"********** No Problems on file for this Patient",! Q
  1. K APCDTDFT S APCDTNDF=0
  1. S APCDTFAC="" F APCDTQ=0:0 S APCDTFAC=$O(^AUPNPROB("AA",APCDPAT,APCDTFAC)) Q:'APCDTFAC!(APCDQUIT) D PROBSCH
  1. ;I APCDTNDF=0 W !,"********** No ",$S(APCDTTAT="A":"ACTIVE",1:"INACTIVE/RESOLVED")," Problems on file for this Patient",! Q
  1. ;W !!,"******************",$S(APCDTTAT="A":" ACTIVE ",1:" INACTIVE/RESOLVED "),"PROBLEMS AND NOTES ********************",!!
  1. I APCDTNDF=0 W !,"********** No ",$S(APCDTTAT["A":"ACTIVE (ALL)",1:"INACTIVE")," Problems on file for this Patient",! Q
  1. W !!,"******************",$S(APCDTTAT["A":" ACTIVE (ALL) ",1:" INACTIVE "),"PROBLEMS AND NOTES ********************",!!
  1. S APCDTFPP="" F APCDTQ=0:0 S APCDTFPP=$O(APCDTDFT(APCDTFPP)) Q:APCDTFPP=""!(APCDQUIT) S APCDTDFN=APCDTDFT(APCDTFPP) D PROBDSP
  1. PROBX K APCDTDFT,APCDTNDF,APCDTFPP,APCDTFAC,APCDTPLN,APCDTPBN,APCDTDTM,APCDTDTN,APCDTPRB,APCDTTAT,APCDTNFP,APCDTNRQ,APCDTPNM,APCDTDFN,APCDTFCN,APCDTICD,APCDTICL,APCDTILN,APCDTN
  1. K APCDTNFL,APCDTNSH,APCDTNAB,APCDTVSC,APCDTITE,APCDTDOO,APCDTDOI
  1. Q
  1. PROBSCH ;
  1. S APCDTPRB="" F APCDTQ=0:0 S APCDTPRB=$O(^AUPNPROB("AA",APCDPAT,APCDTFAC,APCDTPRB)) Q:APCDTPRB=""!(APCDQUIT) S APCDTDFN=$O(^(APCDTPRB,"")) S:APCDTTAT[$P(^AUPNPROB(APCDTDFN,0),U,12) APCDTNDF=APCDTNDF+1,APCDTDFT(APCDTFAC_APCDTPRB)=APCDTDFN
  1. Q
  1. PROBDSP ;
  1. S APCDTN=^AUPNPROB(APCDTDFN,0)
  1. S APCDTNRQ=$P(APCDTN,U,5)
  1. D GETNARR I 1
  1. E S APCDTNRQ=""
  1. S APCDTDOO=$P(APCDTN,U,13) I APCDTDOO]"" S Y=APCDTDOO X APCDTCVD S APCDTDOO=Y
  1. S APCDTITE=$P(APCDTN,U,6)
  1. D GETSITE
  1. S APCDTPNM=$P(APCDTN,U,7)
  1. S APCDTPNM=APCDTNAB_APCDTPNM
  1. S Y=$P(APCDTN,U,3) X APCDTCVD S APCDTDTM=Y
  1. S Y=$P(APCDTN,U,8) X APCDTCVD S APCDTDTN=Y
  1. I $Y>(IOSL-2) D EOP Q:APCDQUIT
  1. S APCDTPLN=APCDTPNM_$E(" ",1,12-$L(APCDTPNM))_APCDTDTM
  1. W APCDTPLN S APCDTICL=24,APCDTILN=56 D PRTICD
  1. W ?24,"Status: ",$$VAL^XBDIQ1(9000011,APCDTDFN,.12),!
  1. D NOTEDSP
  1. Q
  1. NOTEDSP ; DISPLAY NOTES UNDER PROBLEM
  1. S APCDTNFP=0 F APCDTQ=0:0 S APCDTNFP=$O(^AUPNPROB(APCDTDFN,11,APCDTNFP)) Q:'APCDTNFP!(APCDQUIT) D DSPFACN
  1. Q
  1. DSPFACN ; DISPLAY NOTES FOR SELECTED FACILITY
  1. Q:$D(^AUPNPROB(APCDTDFN,11,APCDTNFP,11,0))'=1
  1. Q:$O(^AUPNPROB(APCDTDFN,11,APCDTNFP,11,0))=""
  1. S APCDTITE=^AUPNPROB(APCDTDFN,11,APCDTNFP,0) D GETSITE S APCDTFCN=APCDTNAB
  1. S APCDTNDF=0 F APCDTQ=0:0 S APCDTNDF=$O(^AUPNPROB(APCDTDFN,11,APCDTNFP,11,APCDTNDF)) Q:'APCDTNDF!(APCDQUIT) D DSPN ; ACC
  1. Q
  1. DSPN ; DISPLAY SINGLE NOTE
  1. S APCDTN=^AUPNPROB(APCDTDFN,11,APCDTNFP,11,APCDTNDF,0)
  1. Q:$P(APCDTN,U,4)="I"
  1. F APCDTQ=0:0 Q:$E(APCDTFCN)'=" " S APCDTFCN=$E(APCDTFCN,2,99)
  1. S APCDTDOI=$P(APCDTN,U,5) I APCDTDOI]"" S Y=APCDTDOI X APCDTCVD S APCDTDOI=Y
  1. I $Y>(IOSL-2) D EOP Q:APCDQUIT
  1. W APCDTPNM,APCDTFCN,$P(APCDTN,U),?12,APCDTDOI,?24,$P(APCDTN,U,3),!
  1. K APCDTDOI
  1. Q
  1. ;
  1. PRTICD ;
  1. S:APCDTNRQ="" APCDTNRQ="<no narrative provided>" S APCDTICD=""
  1. S APCDTTXT=APCDTICD D PRTTXT
  1. Q
  1. ;
  1. PRTTXT ; GENERALIZED TEXT PRINTER
  1. S APCDTDLT=1,APCDTILN=80-APCDTICL-1
  1. I APCDTDOO]"" S APCDTNRQ=APCDTNRQ_" (ONSET: "_APCDTDOO_")"
  1. F APCDTQ=0:0 S:APCDTNRQ]""&(($L(APCDTNRQ)+$L(APCDTTXT)+2)<255) APCDTTXT=$S(APCDTTXT]"":APCDTTXT_"; ",1:"")_APCDTNRQ,APCDTNRQ="" Q:APCDTTXT="" D PRTTXT2
  1. K APCDTILN,APCDTDLT,APCDTF,APCDTC,APCDTTXT,APCDTDOO
  1. Q
  1. PRTTXT2 D GETFRAG
  1. I $Y>(IOSL-2) D EOP
  1. Q:APCDQUIT
  1. W ?APCDTICL W APCDTF,! S APCDTICL=APCDTICL+APCDTDLT,APCDTILN=APCDTILN-APCDTDLT,APCDTDLT=0
  1. Q
  1. GETFRAG I $L(APCDTTXT)<APCDTILN S APCDTF=APCDTTXT,APCDTTXT="" Q
  1. F APCDTC=APCDTILN:-1:1 Q:$E(APCDTTXT,APCDTC)=" "
  1. S APCDTF=$E(APCDTTXT,1,APCDTC-1),APCDTTXT=$E(APCDTTXT,APCDTC+1,255)
  1. Q
  1. ;
  1. GETNARR ;
  1. ;I APCDTNRQ]"" S APCDTNRQ=$S($D(^AUTNPOV(APCDTNRQ)):$P(^AUTNPOV(APCDTNRQ,0),U),1:"***** "_APCDTNRQ_" *****")
  1. I APCDTNRQ]"" S APCDTNRQ=$$PNPROB^AUPNVUTL(APCDTNRQ)
  1. E S APCDTNRQ=""
  1. Q
  1. ;
  1. GETSITE ;
  1. S:APCDTITE="" APCDTITE="null"
  1. S %=$G(^AUTTLOC(APCDTITE,0))
  1. S APCDTNFL=$P(%,U),APCDTNFL=$S($D(^DIC(4,APCDTITE,0)):$P(^(0),U),1:"<"_APCDTITE_">")
  1. S APCDTNSH=$P(%,U,2) I APCDTNSH="" S APCDTNSH="<"_APCDTITE_">"
  1. S APCDTNAB=$J($P(%,U,7),4) I APCDTNAB="" S APCDTNAB="<"_APCDTITE_">"
  1. Q
  1. EOP ;end of page
  1. W !,"Enter return to continue, '^' to exit" R X:DTIME
  1. I X="^" S APCDQUIT=1 Q
  1. I X'="" W "??" G EOP
  1. W:$D(IOF) @IOF
  1. Q