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

BPCPRBC.m

Go to the documentation of this file.
  1. BPCPRBC ; IHS/OIT/MJL - ADD,DELETE, OR EDIT PROBLEM ;
  1. ;;1.5;BPC;;MAY 26, 2005
  1. PRBEDIT(RESULT,BPCFLAG,BPCPARAM) ;EP CALL FROM REMOTE PROC: BPC EDITPROBLEM
  1. EN ;
  1. S U="^",XWBWRAP=1 K RESULT
  1. I BPCFLAG="" S RESULT(1)=-1,RESULT(2)="NO EDIT FLAG RECEIVED!" D KILL Q
  1. I BPCPARAM="" S RESULT(1)=-1,RESULT(2)="NO PARAMETERS RECEIVED!" D KILL Q
  1. I $L(BPCPARAM,";")'=8 S RESULT(1)=-1,RESULT(2)="WRONG NUMBER OF DATA ITEMS SENT ("_$L(BPCPARAM,";")_"). 8 ITEMS EXPECTED!" D KILL Q
  1. I "AED"'[BPCFLAG S RESULT(1)=-1,RESULT(2)="PROPER EDIT FLAG NOT SENT!" D KILL Q
  1. D:BPCFLAG="A" ADD D:BPCFLAG="E" EDIT D:BPCFLAG="D" DELETE D KILL
  1. Q
  1. KILL ;
  1. K BPCDIEN,BPCNARR,BPCLOCN,BPCONSET,BPCCLS,BPCSTAT,BPCPIEN,BPCNIEN,BPCLOCN,BPCERR,BPCLIEN,BPCCTR,BPCDX,BPCX,BPCDENT,BPCDMOD,BPCPRBID,BPCPRIEN,BPCNARCK
  1. K BPCFLG
  1. Q
  1. ADD ;
  1. S BPCDIEN=$P(BPCPARAM,";",1),BPCNARR=$P(BPCPARAM,";",2),BPCLOCN=$P(BPCPARAM,";",3),BPCONSET=$P(BPCPARAM,";",4),BPCCLS=$P(BPCPARAM,";",5),BPCSTAT=$P(BPCPARAM,";",6),BPCPIEN=$P(BPCPARAM,";",7)
  1. I '$D(^DPT(BPCPIEN,0)) S RESULT(1)=-1,RESULT(2)="PATIENT IEN NOT DEFINED!" Q
  1. I '$D(^ICD9(BPCDIEN,0)) S RESULT(1)=-1,RESULT(2)="DIAGNOSIS IEN NOT DEFINED!" Q
  1. S (BPCDMOD,BPCDENT)=DT,BPCLIEN=$O(^DIC(4,"B",BPCLOCN,""))
  1. I BPCONSET'="" S X=BPCONSET D ^%DT S BPCONSET=$S(Y'=-1:$P(Y,".",1),1:"")
  1. I BPCLIEN="" S RESULT(1)=-1,RESULT(2)="UNKNOWN LOCATION SENT!" Q
  1. S BPCNARCK=$E(BPCNARR,1,30)
  1. S BPCFLG=0
  1. I $D(^AUTNPOV("B",BPCNARCK)) D
  1. .S S1="" F S S1=$O(^AUTNPOV("B",BPCNARCK,S1)) Q:S1="" D Q:BPCFLG
  1. ..S BPCNFLD=$P(^AUTNPOV(S1,0),U,1)
  1. ..I BPCNFLD=BPCNARR S BPCFLG=1,BPCNIEN=S1
  1. I '$D(^AUTNPOV("B",BPCNARCK))!('BPCFLG) S BPCERR=0 D SETNAR I BPCERR S RESULT(1)=-1,RESULT(2)="UNABLE TO ADD PROBLEM NARRATIVE!" Q
  1. S BPCCTR=0,BPCC="" F S BPCC=$O(^AUPNPROB("AA",BPCPIEN,BPCLIEN,BPCC)) Q:BPCC="" S BPCCTR=+($E(BPCC,2,999))
  1. S BPCCTR=BPCCTR+1,BPCERR=0 D ADDPROB I BPCERR S RESULT(1)=-1,RESULT(2)="UNABLE TO ADD PROBLEM!" Q
  1. D SETRES
  1. Q
  1. SETRES ;
  1. S BPCLOCC=$P(^AUTTLOC(BPCLIEN,0),U,7)
  1. S BPCLOCC=$S(BPCLOCC="":"UK",1:BPCLOCC)
  1. S BPCPRBID=BPCLOCC_BPCCTR,BPCDX=$P(^ICD9(BPCDIEN,0),U,1)
  1. S RESULT(1)=1,RESULT(2)="PROB"_U_$G(BPCPRBID)_U_$G(BPCDX)_U_$G(BPCSTAT)_U_$G(BPCONSET)_U_$G(BPCNARR)_U_$G(BPCPRB)_U_$G(BPCDENT)_U_$G(BPCDMOD)
  1. Q
  1. EDPROB ;
  1. L +^AUPNPROB(0):10 I '$T S BPCERR=1 Q
  1. K BPCFDA,BPCEMSG S BPCFDR="BPCFDA(1)",BPCPRIEN=BPCPRIEN_","
  1. S BPCFDA(1,9000011,BPCPRIEN,.01)=BPCDIEN
  1. S BPCFDA(1,9000011,BPCPRIEN,.03)=BPCDMOD
  1. S BPCFDA(1,9000011,BPCPRIEN,.04)=BPCCLS
  1. S BPCFDA(1,9000011,BPCPRIEN,.05)=BPCNIEN
  1. ;S BPCFDA(1,9000011,BPCPRIEN,.06)=BPCLIEN
  1. ;S BPCFDA(1,9000011,BPCPRIEN,.07)=BPCCTR
  1. S BPCFDA(1,9000011,BPCPRIEN,.12)=BPCSTAT
  1. S BPCFDA(1,9000011,BPCPRIEN,.13)=BPCONSET
  1. D FILE^DIE("",BPCFDR,"BPCEMSG")
  1. I $D(BPCEMSG("DIERR")) S BPCERR=1
  1. S BPCPRB=$P(BPCPRIEN,",",1)
  1. L -^AUPNPROB(0)
  1. Q
  1. ADDPROB ;
  1. L +^AUPNPROB(0):10 I '$T S BPCERR=1 Q
  1. K BPCFDA,BPCEMSG S BPCFDR="BPCFDA(1)"
  1. S BPCFDA(1,9000011,"+1,",.01)=BPCDIEN
  1. S BPCFDA(1,9000011,"+1,",.02)=BPCPIEN
  1. S BPCFDA(1,9000011,"+1,",.03)=BPCDMOD
  1. S BPCFDA(1,9000011,"+1,",.04)=BPCCLS
  1. S BPCFDA(1,9000011,"+1,",.05)=BPCNIEN
  1. S BPCFDA(1,9000011,"+1,",.06)=BPCLIEN
  1. S BPCFDA(1,9000011,"+1,",.07)=BPCCTR
  1. S BPCFDA(1,9000011,"+1,",.08)=BPCDENT
  1. S BPCFDA(1,9000011,"+1,",.12)=BPCSTAT
  1. S BPCFDA(1,9000011,"+1,",.13)=BPCONSET
  1. D UPDATE^DIE("",BPCFDR,"","BPCEMSG")
  1. I $D(BPCEMSG("DIERR")) S BPCERR=1
  1. I 'BPCERR S BPCPRB=$P(^AUPNPROB(0),U,3)
  1. L -^AUPNPROB(0)
  1. Q
  1. SETNAR ;
  1. K BPCFDA,BPCEMSG
  1. L +^AUTNPOV(0):10 I '$T S BPCERR=1 Q
  1. S BPCFDR="BPCFDA(1)"
  1. S BPCFDA(1,9999999.27,"+1,",.01)=BPCNARR D UPDATE^DIE("",BPCFDR,"","BPCEMSG")
  1. I $D(BPCEMSG("DIERR")) S BPCERR=1
  1. L -^AUTNPOV(0)
  1. I 'BPCERR S BPCNIEN=$P(^AUTNPOV(0),U,3)
  1. Q
  1. EDIT ;
  1. S BPCDIEN=$P(BPCPARAM,";",1),BPCNARR=$P(BPCPARAM,";",2),BPCLOCN=$P(BPCPARAM,";",3),BPCONSET=$P(BPCPARAM,";",4),BPCCLS=$P(BPCPARAM,";",5),BPCSTAT=$P(BPCPARAM,";",6),BPCPIEN=$P(BPCPARAM,";",7),BPCPRIEN=$P(BPCPARAM,";",8)
  1. I '$D(^DPT(BPCPIEN,0)) S RESULT(1)=-1,RESULT(2)="PATIENT IEN NOT DEFINED!" Q
  1. I '$D(^ICD9(BPCDIEN,0)) S RESULT(1)=-1,RESULT(2)="DIAGNOSIS IEN NOT DEFINED!" Q
  1. S BPCDMOD=DT
  1. I BPCONSET'="" S X=BPCONSET D ^%DT S BPCONSET=$S(Y'=-1:$P(Y,".",1),1:"")
  1. S BPCLIEN=$O(^DIC(4,"B",BPCLOCN,""))
  1. I BPCPRIEN="" S RESULT(1)=-1,RESULT(2)="NO PROBLEM IEN PRESENT!" Q
  1. I '$D(^AUPNPROB(BPCPRIEN)) S RESULT(1)=-1,RESULT(2)="PROBLEM IEN DOES NOT MATCH A PROBLEM! IEN= "_BPCPRIEN Q
  1. S BPCCTR=$P(^AUPNPROB(BPCPRIEN,0),U,7)
  1. S BPCNARCK=$E(BPCNARR,1,30)
  1. S BPCFLG=0
  1. I $D(^AUTNPOV("B",BPCNARCK)) D
  1. .S S1="" F S S1=$O(^AUTNPOV("B",BPCNARCK,S1)) Q:S1="" D Q:BPCFLG
  1. ..S BPCNFLD=$P(^AUTNPOV(S1,0),U,1)
  1. ..I BPCNFLD=BPCNARR S BPCFLG=1,BPCNIEN=S1
  1. I '$D(^AUTNPOV("B",BPCNARCK))!('BPCFLG) S BPCERR=0 D SETNAR I BPCERR S RESULT(1)=-1,RESULT(2)="UNABLE TO ADD PROBLEM NARRATIVE!" Q
  1. S BPCERR=0 D EDPROB I BPCERR S RESULT(1)=-1,RESULT(2)="UNABLE TO EDIT PROBLEM!" Q
  1. D SETRES
  1. Q
  1. DELETE ;
  1. S BPCPRIEN=$P(BPCPARAM,";",8)
  1. I +BPCPRIEN=0 S RESULT(1)=-1,RESULT(2)="NO PROBLEM IEN!" Q
  1. I '$D(^AUPNPROB(BPCPRIEN,0)) S RESULT(1)=-1,RESULT(2)="PROBLEM DOES NOT EXIST!" Q
  1. S DIK="^AUPNPROB(",DA=BPCPRIEN D ^DIK
  1. S RESULT(1)=1,RESULT(2)="PROBLEM DELETED!"
  1. K DIK,DA
  1. Q