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

GMPLEDT4.m

Go to the documentation of this file.
  1. GMPLEDT4 ; SLC/MKB/TC -- Problem List Edit actions cont ;04/22/15 13:09
  1. ;;2.0;Problem List;**5,43,42,47,45**;Aug 25, 1994;Build 53
  1. TERM ; edit field 1.01
  1. N DTOUT,PROB,TERM,ICD,DUP,Y,GMPLCSYS,GMPL0,GMPL802,GMPIMPDT
  1. S GMPIMPDT=$$IMPDATE^LEXU("10D")
  1. T1 W !,"PROBLEM: "_$P(GMPFLD(.05),U,2)_"//"
  1. R PROB:DTIME S:'$T DTOUT=1 I $D(DTOUT)!(PROB="^") S GMPQUIT=1 Q
  1. I PROB?1"^".E D JUMP^GMPLEDT3(PROB) Q:$D(GMPQUIT)!($G(GMPLJUMP)) K:$G(GMPIFN) GMPLJUMP G T1
  1. Q:PROB="" Q:PROB=$P(GMPFLD(.05),U,2) ; no change
  1. I PROB["?" D G T1
  1. . W !!?4,"Enter a description of this problem, up to 80 characters.",!
  1. I PROB="@",'+$G(GMPIFN) D S GMPQUIT=1 Q
  1. .W !!?5,$C(7),$C(7),"This problem has not yet been saved."
  1. .W !?5,"Enter <Q>uit and it will not be added to the list.",!!
  1. .K DIR S DIR("A")="Press RETURN to redisplay the problem text"
  1. .S DIR(0)="E" D ^DIR K DIR
  1. I PROB="@" D DELETE^GMPLEDT2 S:VALMBCK="Q" GMPQUIT=1 Q:$D(GMPQUIT) G T1
  1. T2 ; new text -- pass to look-up
  1. I '$D(GMPLUSER)!($D(GMPLUSER)&('GMPARAM("CLU"))) S GMPFLD(1.01)="",GMPFLD(.05)=U_PROB Q
  1. D SEARCH^GMPLX(.PROB,.Y,"PROBLEM: ","1") ; pass to CLU
  1. I +Y'>0 S GMPQUIT=1 Q
  1. S DUP=$$DUPL^GMPLX(+GMPDFN,+Y,PROB)
  1. I DUP,'$$DUPLOK^GMPLX(DUP) S (Y,GMPROB)="" W ! G T1
  1. S TERM=$S(+$G(Y)>1:Y,1:""),ICD=$G(Y(1))
  1. S:'$L(ICD) ICD=$S(DT<GMPIMPDT:"799.9",1:"R69.")
  1. N I,GMPSTAT,GMPCSREC,GMPCSPTR,GMPCSNME,GMPSCTC,GMPSCTD,GMPTXT,GMPTYP,GMPNUM,GMPQT,GMPSYN
  1. S (GMPTYP,GMPNUM,GMPQT)=""
  1. I ICD["/" F I=1:1:$L(ICD,"/") D Q:GMPSTAT
  1. . N GMPCODE S GMPCODE=$P(ICD,"/",I),GMPSTAT=0
  1. . S GMPCSREC=$$CODECS^ICDEX(GMPCODE,80,DT),GMPCSPTR=$P(GMPCSREC,U),GMPCSNME=$P(GMPCSREC,U,2)
  1. . S:'+$$STATCHK^ICDXCODE(GMPCSPTR,GMPCODE,DT) GMPSTAT=1
  1. E D
  1. . S GMPSTAT=0,GMPCSREC=$$CODECS^ICDEX(ICD,80,DT),GMPCSPTR=$P(GMPCSREC,U),GMPCSNME=$P(GMPCSREC,U,2)
  1. . S:'+$$STATCHK^ICDXCODE(GMPCSPTR,ICD,DT) GMPSTAT=1
  1. I GMPSTAT W !,PROB,!,"has an inactive ICD code. Please enter another search term." H 3 Q
  1. I (PROB["(SCT"),(PROB[")") D
  1. . S GMPSCTC=$$ONE^LEXU(+TERM,DT,"SCT")
  1. . S GMPTXT=$$TRIM^XLFSTR($RE($P($RE(PROB),"(",2,99)))
  1. . S GMPSCTD=$$GETSYN^LEXTRAN1("SCT",GMPSCTC,DT,"GMPSYN",1,1)
  1. . I $P(GMPSCTD,U)'=1 S GMPSCTD="" Q
  1. . F S GMPTYP=$O(GMPSYN(GMPTYP)) Q:GMPTYP=""!(GMPQT) D
  1. . . I GMPTYP="S" F S GMPNUM=$O(GMPSYN(GMPTYP,GMPNUM)) Q:GMPNUM=""!(GMPQT) D
  1. . . . I $P(GMPSYN(GMPTYP,GMPNUM),U)=GMPTXT S GMPSCTD=$P(GMPSYN(GMPTYP,GMPNUM),U,3),GMPQT=1 Q
  1. . . Q:GMPQT
  1. . . I $P(GMPSYN(GMPTYP),U)=GMPTXT S GMPSCTD=$P(GMPSYN(GMPTYP),U,3),GMPQT=1 Q
  1. S GMPLCSYS=$$SAB^ICDEX(GMPCSPTR,DT)
  1. S GMPFLD(1.01)=TERM,GMPFLD(.05)=U_PROB
  1. S GMPFLD(.01)=$S($L(ICD):$P($$ICDDATA^ICDXCODE(GMPCSPTR,$P(ICD,"/"),DT,"E"),U)_U_$G(ICD),1:"")
  1. S:'GMPFLD(.01)!($P(GMPFLD(.01),U)<0) GMPFLD(.01)=$$NOS^GMPLX(GMPLCSYS,DT)
  1. S (GMPFLD(.03),GMPFLD(80201),GMPFLD(1.09))=DT_U_$$EXTDT^GMPLX(DT)
  1. S GMPFLD(80202)=GMPLCSYS_U_$G(GMPCSNME)
  1. S GMPFLD(80001)=GMPSCTC_U_GMPSCTC,GMPFLD(80002)=GMPSCTD_U_GMPSCTD
  1. K GMPSYN
  1. Q
  1. ;
  1. TEXT(DFLT) ; Enter/edit provider narrative text (no lookup)
  1. N DIR,X,Y,DTOUT
  1. S DIR(0)="FAO^2:80",DIR("A")="PROBLEM: " S:$L(DFLT) DIR("B")=DFLT
  1. S DIR("?")="Enter a description of this problem, up to 80 characters."
  1. D ^DIR S:$D(DTOUT)!(X="^") Y="^" S:'$L(DFLT)&(X="") Y="^"
  1. Q Y
  1. ;
  1. NTES ; Edit existing note, display # in XQORNOD(0)
  1. N NUM,NOTE,X,Y,PROMPT,DEFAULT,NT
  1. S NT=$S(GMPVA:7,1:5) S:$D(^XUSEC("GMPL ICD CODE",DUZ)) NT=NT+1
  1. S NUM=+$P(XQORNOD(0),U,3)-NT Q:NUM'>0
  1. S NOTE=GMPFLD(10,NUM),DEFAULT=$P(NOTE,U,3)
  1. S PROMPT="NOTE "_$$EXTDT^GMPLX($P(NOTE,U,5))_": "
  1. D EDNOTE Q:$D(GMPQUIT)
  1. S $P(GMPFLD(10,NUM),U,3)=Y
  1. Q
  1. ;
  1. EDNOTE ; Edit note text given PROMPT,DEFAULT (returns X,Y)
  1. N DIR,DTOUT S DIR(0)="FAO^1:200",DIR("A")=PROMPT
  1. S:$L(DEFAULT) DIR("B")=DEFAULT
  1. S DIR("?",1)="Enter any text you wish appended to this problem, up to 200 characters"
  1. S DIR("?")="in length. You may append as many comments to a problem as you wish."
  1. ED1 D ^DIR I $D(DTOUT)!(Y="^") S GMPQUIT=1,Y="" Q
  1. I Y?1"^".E D JUMP^GMPLEDT3(Y) Q:$D(GMPQUIT)!($G(GMPLJUMP)) K:$G(GMPIFN) GMPLJUMP G ED1
  1. Q:Y=DEFAULT I X="@" D Q:$D(GMPQUIT)!(Y="") G ED1
  1. . N DIR,X,DTOUT,DUOUT S DIR(0)="YAO",DIR("B")="NO"
  1. . S DIR("A")=" Are you sure you want to delete this comment? "
  1. . S DIR("?")=" Enter YES to completely remove this comment from this patient's problem."
  1. . W $C(7) D ^DIR I $D(DUOUT)!($D(DTOUT)) S GMPQUIT=1,Y="" Q
  1. . S:Y Y=""
  1. I $L(X)>200 W !!,"Text may not exceed 200 characters!",!,$C(7) S DIR("B")=$E(X,1,200) G ED1
  1. S Y=X
  1. Q
  1. ;
  1. RESOLVED ; edit field 1.07
  1. N X,Y,PROMPT,HELPMSG,DEFAULT,ONSET S ONSET=+$G(GMPFLD(.13))
  1. S DEFAULT=$G(GMPFLD(1.07)),PROMPT="DATE RESOLVED: "
  1. S HELPMSG="Enter the date this problem became resolved or inactive, as precisely as known."
  1. R1 D DATE^GMPLEDT2 Q:$D(GMPQUIT)!($G(GMPLJUMP))
  1. I Y,ONSET,Y<ONSET W !!,"Date Resolved cannot be prior to the Date of Onset!",$C(7) G R1
  1. S GMPFLD(1.07)=Y S:Y'="" GMPFLD(1.07)=GMPFLD(1.07)_U_$$EXTDT^GMPLX(Y)
  1. Q
  1. ;
  1. PRIORITY ; edit field 1.14
  1. N DIR,X,Y,DTOUT
  1. S DIR(0)="SAO^A:ACUTE;C:CHRONIC;",DIR("A")=" (A)cute or (C)hronic? "
  1. S:$L($G(GMPFLD(1.14))) DIR("B")=$P(GMPFLD(1.14),U,2)
  1. S DIR("?",1)=" You may further refine the status of this problem by designating it",DIR("?",2)=" as ACUTE or CHRONIC; problems marked as ACUTE will be flagged on the",DIR("?")=" list display with a '*'."
  1. PR1 D ^DIR I $D(DTOUT)!(Y="^") S GMPQUIT=1 Q
  1. I Y?1"^".E D JUMP^GMPLEDT3(Y) Q:$D(GMPQUIT)!($G(GMPLJUMP)) K:$G(GMPIFN) GMPLJUMP G PR1
  1. S:Y'="" Y=Y_U_$S(Y="A":"ACUTE",1:"CHRONIC")
  1. S GMPFLD(1.14)=Y
  1. Q