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

AMHGEGP.m

Go to the documentation of this file.
  1. AMHGEGP ; IHS/CMI/MAW - AMHG Save Group Encounter 3/8/2009 7:41:21 PM ;
  1. ;;4.0;IHS BEHAVIORAL HEALTH;**2,4,5**;JUN 02, 2010;Build 18
  1. ;
  1. ;
  1. ;
  1. DEBUG(RETVAL,AMHSTR) ;replace tag below to allow Serenji debug of GUI
  1. D DEBUG^%Serenji("TAG^AMHGU(.AMHRET,.AMHSTR)")
  1. Q
  1. ;
  1. POV(D,RC,P,A2) ;EP -- add/modify pov
  1. N AMHDA,R
  1. S R="~"
  1. S AMHDA=0 F S AMHDA=$O(A2(AMHDA)) Q:'AMHDA D
  1. . N STR,PIEN,PCODE,PNARR
  1. . S STR=$G(A2(AMHDA))
  1. . S PIEN=$P(STR,R)
  1. . S PCODE=$P(STR,R,2)
  1. . S PNARR=$P(STR,R,3)
  1. . I $G(PNARR)]"" D
  1. ..S AMHN=$$FNDNARR^AMHGU(PNARR,1)
  1. . I D="A" D ADDPOV^AMHGEVF(PIEN,P,RC,AMHN) Q
  1. . I D="E" D Q
  1. .. N AMHPREC
  1. .. S AMHPREC=$$FNDPOV^AMHGU(PIEN,RC)
  1. .. I 'AMHPREC D ADDPOV^AMHGEVF(PIEN,P,RC,AMHN) Q
  1. .. D EDITPOV^AMHGEVF(AMHPREC,AMHN)
  1. I D="E" D Q
  1. . D DELPOV^AMHGEVF(RC,.A2)
  1. Q
  1. ;
  1. GP(AMHIEN,DM,REC,PRG,GN,CL,NS,TOC,EL,ED,CS,ACT,AT,CC) ;EP -- group add/edit
  1. N AMHFDA,AMHIENS,AMHERRR,FL
  1. S AMHIENS=$S(DM="A":"+1,",1:REC_",")
  1. S FL=9002011.67
  1. S AMHFDA(FL,AMHIENS,.01)=ED
  1. S AMHFDA(FL,AMHIENS,.02)=PRG
  1. S AMHFDA(FL,AMHIENS,.03)=GN
  1. S AMHFDA(FL,AMHIENS,.05)=EL
  1. S AMHFDA(FL,AMHIENS,.14)=CL
  1. I DM="A" D ;v4.0p2 ihs/cmi/maw added
  1. . S AMHFDA(FL,AMHIENS,.06)=CS
  1. . S AMHFDA(FL,AMHIENS,.07)=ACT
  1. . S AMHFDA(FL,AMHIENS,.08)=TOC
  1. . S AMHFDA(FL,AMHIENS,.11)=AT
  1. . S AMHFDA(FL,AMHIENS,.13)=DT
  1. . S AMHFDA(FL,AMHIENS,.15)=DUZ
  1. . S AMHFDA(FL,AMHIENS,1200)=CC
  1. I DM="A" D
  1. . ;S AMHFDA(FL,AMHIENS,.01)=ED
  1. . S AMHFDA(FL,AMHIENS,.04)=DT
  1. . S AMHFDA(FL,AMHIENS,.12)=DUZ
  1. . D UPDATE^DIE("","AMHFDA","AMHIENS","AMHERRR(1)")
  1. . I '$D(AMHERRR) S AMHIEN=$G(AMHIENS(1)) Q
  1. . S AMHER="0~Add Group"
  1. I DM="E" D
  1. . D FILE^DIE("K","AMHFDA","AMHERRR(1)")
  1. . I $D(AMHERRR) S AMHER="0~Edit Group"
  1. Q
  1. ;
  1. MODPRV(P,D,RC,PAT,TYP) ;EP -- modify the provider based on data mode
  1. N AMHFDA,AMHIENS,AMHERRR,AMHPIEN
  1. S AMHIENS="+2,"_RC_","
  1. S AMHFDA(9002011.6711,AMHIENS,.01)=P
  1. S AMHFDA(9002011.6711,AMHIENS,.02)=TYP
  1. D UPDATE^DIE("","AMHFDA","AMHIENS","AMHERRR(1)")
  1. I $D(AMHERRR) S AMHER="0~Add "_$G(TYP)_" Provider"
  1. S AMHPIEN=$G(AMHIENS(2))
  1. Q
  1. ;
  1. CLNPRV(RC) ;EP -- clean out provider multiple
  1. S DA(1)=RC
  1. S DIK="^AMHGROUP("_DA(1)_",11,"
  1. N PDA
  1. S PDA=0 F S PDA=$O(^AMHGROUP(RC,11,PDA)) Q:'PDA D
  1. . S DA=PDA D ^DIK
  1. Q
  1. ;
  1. SP(D,RC,P,SP) ;EP -- file secondary providers from activity tab
  1. N ASP
  1. D ARRAY^AMHGU(.ASP,.SP)
  1. N AMHDA
  1. S AMHDA=0 F S AMHDA=$O(ASP(AMHDA)) Q:'AMHDA D
  1. . N PRV
  1. . S PRV=+$G(ASP(AMHDA))
  1. . D MODPRV(PRV,D,RC,P,"S")
  1. Q
  1. ;
  1. GPOV(D,RC,PV) ;EP -- file the purpose of visit
  1. D CLNPV(RC)
  1. N PVDA,R
  1. S R="~"
  1. S PVDA=0 F S PVDA=$O(PV(PVDA)) Q:'PVDA D
  1. . N PVSTR,PVI,PVN,AMHN
  1. . S PVSTR=$G(PV(PVDA))
  1. . S PVI=$P(PVSTR,R)
  1. . S PVN=$P(PVSTR,R,3)
  1. . I $G(PVN)]"" D
  1. .. S AMHN=$$FNDNARR^AMHGU(PVN,1)
  1. . N AMHFDA,AMHIENS,AMHERRR,FL
  1. . S AMHIENS="+2,"_RC_","
  1. . S FL=9002011.6721
  1. . S AMHFDA(FL,AMHIENS,.01)=PVI
  1. . S AMHFDA(FL,AMHIENS,.02)=$G(AMHN)
  1. . D UPDATE^DIE("","AMHFDA","AMHIENS","AMHERRR(1)")
  1. . I $D(AMHERRR) S AMHER="0~Add Group POV" Q
  1. . S AMHPVIEN=$G(AMHIENS(2))
  1. Q
  1. ;
  1. CLNPV(RC) ;EP -- clean the pov multiple out first
  1. S DA(1)=RC
  1. S DIK="^AMHGROUP("_DA(1)_",21,"
  1. N PDA
  1. S PDA=0 F S PDA=$O(^AMHGROUP(RC,21,PDA)) Q:'PDA D
  1. . S DA=PDA D ^DIK
  1. Q
  1. ;
  1. PN(D,RC,PN,P) ;EP -- file the progress notes
  1. Q:$G(PN)=""
  1. N AMHWP
  1. D ARRAYT^AMHGU(.AMHWP,PN) ;parse the text into an array
  1. N AMHFDA,AMHIENS,AMHERRR
  1. S AMHIENS=RC_","
  1. D WP^AMHGU(.AMHERRR,9002011.67,AMHIENS,3101,.AMHWP)
  1. Q
  1. ;
  1. CPT(RC,CI) ;EP -- add a cpt
  1. D CLNCPT(RC)
  1. N CDA,R
  1. S R="~"
  1. S CDA=0 F S CDA=$O(CI(CDA)) Q:'CDA D
  1. . N CSTR,CIEN,CQTY,CMOD1,CMOD2
  1. . S CSTR=$G(CI(CDA))
  1. . S CIEN=$P(CSTR,R)
  1. . S CQTY=$P(CSTR,R,4)
  1. . I CQTY<1 S CQTY=1
  1. . S CMOD1=$P(CSTR,R,5)
  1. . S CMOD2=$P(CSTR,R,6)
  1. . N AMHFDA,AMHIENS,AMHERRR
  1. . S AMHIENS="+2,"_RC_","
  1. . S AMHFDA(9002011.6741,AMHIENS,.01)=CIEN
  1. . S AMHFDA(9002011.6741,AMHIENS,.02)=CQTY
  1. . S AMHFDA(9002011.6741,AMHIENS,.03)=CMOD1
  1. . S AMHFDA(9002011.6741,AMHIENS,.04)=CMOD2
  1. . D UPDATE^DIE("","AMHFDA","AMHIENS","AMHERRR(1)")
  1. . I $D(AMHERRR) S AMHER="0~Add Activity CPT" Q
  1. . S AMHCIEN=$G(AMHIENS(2))
  1. Q
  1. ;
  1. CLNCPT(RC) ;EP -- clean cpt multiple
  1. S DA(1)=RC
  1. S DIK="^AMHGROUP("_DA(1)_",41,"
  1. N CDA
  1. S CDA=0 F S CDA=$O(^AMHGROUP(RC,41,CDA)) Q:'CDA D
  1. . S DA=CDA D ^DIK
  1. Q
  1. ;
  1. EDU(RC,EDU) ;EP -- file the education topics
  1. D CLNEDU(RC)
  1. N EDA,R
  1. S R="~"
  1. S EDA=0 F S EDA=$O(EDU(EDA)) Q:'EDA D
  1. . N ESTR,ED,L,LOU,CM,CP,ST,G,PR
  1. . S ESTR=$G(EDU(EDA))
  1. . S ED=$P(ESTR,R)
  1. . I ED]"" S ED=$O(^AUTTEDT("B",ED,0)) ;get internal value to file
  1. . S L=$P(ESTR,R,2)
  1. . S LOU=$$SCI^AMHGT(9002011.05,.08,$P(ESTR,R,3))
  1. . S CM=$P(ESTR,R,4)
  1. . S CP=$P(ESTR,R,5)
  1. . I $G(CP)]"" S CP=$O(^ICPT("B",CP,0))
  1. . S ST=$$SCI^AMHGT(9002011.05,.11,$P(ESTR,R,6))
  1. . S G=$P(ESTR,R,7)
  1. . S PR=$S($P(ESTR,R,8):$P(ESTR,R,8),1:DUZ)
  1. . N AMHFDA,AMHIENS,AMHERRR
  1. . S AMHIENS="+2,"_RC_","
  1. . S AMHFDA(9002011.6771,AMHIENS,.01)=ED
  1. . S AMHFDA(9002011.6771,AMHIENS,.02)=PR
  1. . S AMHFDA(9002011.6771,AMHIENS,.03)="G"
  1. . S AMHFDA(9002011.6771,AMHIENS,.04)=L
  1. . S AMHFDA(9002011.6771,AMHIENS,.05)=CP
  1. . S AMHFDA(9002011.6771,AMHIENS,.06)=LOU
  1. . S AMHFDA(9002011.6771,AMHIENS,.07)=G
  1. . S AMHFDA(9002011.6771,AMHIENS,.08)=ST
  1. . S AMHFDA(9002011.6771,AMHIENS,1101)=CM
  1. . D UPDATE^DIE("","AMHFDA","AMHIENS","AMHERRR(1)")
  1. . I $D(AMHERRR) S AMHER="0~Add Education Topic" Q
  1. . S AMHEIEN=$G(AMHIENS(2))
  1. Q
  1. ;
  1. CLNEDU(RC) ;EP -- clean the edu topic multiple
  1. S DA(1)=RC
  1. S DIK="^AMHGROUP("_DA(1)_",71,"
  1. N EDA
  1. S EDA=0 F S EDA=$O(^AMHGROUP(RC,71,EDA)) Q:'EDA D
  1. . S DA=EDA D ^DIK
  1. Q
  1. ;
  1. PATS(RC,PTS) ;EP -- add patients to multiple
  1. D CLNPAT(RC)
  1. N PTDA
  1. S PTDA=0 F S PTDA=$O(PTS(PTDA)) Q:'PTDA D
  1. . N PAT
  1. . S PAT=$G(PTS(PTDA))
  1. . N AMHFDA,AMHIENS,AMHERRR
  1. . S AMHIENS="+2,"_RC_","
  1. . S AMHFDA(9002011.6751,AMHIENS,.01)=PAT
  1. . D UPDATE^DIE("","AMHFDA","AMHIENS","AMHERRR(1)")
  1. Q
  1. ;
  1. CLNPAT(RC) ;EP -- clean out the patient multiple
  1. S DA(1)=RC
  1. S DIK="^AMHGROUP("_DA(1)_",51,"
  1. N PDA
  1. S PDA=0 F S PDA=$O(^AMHGROUP(RC,51,PDA)) Q:'PDA D
  1. . S DA=PDA D ^DIK
  1. Q
  1. ;
  1. MH(RC,MHR) ;EP -- add mhss recs to multiple
  1. D CLNMH(RC)
  1. N MHDA
  1. S MHDA=0 F S MHDA=$O(MHR(MHDA)) Q:'MHDA D
  1. . N MHI
  1. . S MHI=$G(MHR(MHDA))
  1. . N AMHFDA,AMHIENS,AMHERRR
  1. . S AMHIENS="+2,"_RC_","
  1. . S AMHFDA(9002011.6761,AMHIENS,.01)=MHI
  1. . D UPDATE^DIE("","AMHFDA","AMHIENS","AMHERRR(1)")
  1. Q
  1. ;
  1. CLNMH(RC) ;EP -- clean out mental health
  1. S DA(1)=RC
  1. S DIK="^AMHGROUP("_DA(1)_",61,"
  1. N MDA
  1. S MDA=0 F S MDA=$O(^AMHGROUP(RC,61,MDA)) Q:'MDA D
  1. . S DA=MDA D ^DIK
  1. Q
  1. ;