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

BCHEGR1.m

Go to the documentation of this file.
  1. BCHEGR1 ; IHS/CMI/LAB - GROUP ENTRY ;
  1. ;;2.0;IHS RPMS CHR SYSTEM;;OCT 23, 2012;Build 27
  1. ;
  1. ;
  1. GATHER ;EP
  1. K ^TMP($J,"BCHEGR")
  1. S BCHLINE=0,BCHD=$$FMADD^XLFDT(BCHRED,1)
  1. F S BCHD=$O(^BCHGRPD("B",BCHD),-1) Q:BCHD'=+BCHD!($P(BCHD,".")<BCHRBD) D
  1. .S BCHX=0 F S BCHX=$O(^BCHGRPD("B",BCHD,BCHX)) Q:BCHX'=+BCHX D
  1. ..S BCHN=$G(^BCHGRPD(BCHX,0))
  1. ..Q:$P(BCHN,U,7)'=BCHPROV
  1. ..S BCHLINE=BCHLINE+1,X=BCHLINE_")",$E(X,7)=$E(BCHD,4,5)_"/"_$E(BCHD,6,7)_"/"_$E(BCHD,2,3),$E(X,16)=$E($P(BCHN,U,3),1,20)
  1. ..S A=$P(BCHN,U,7) I A S A=$E($P(^VA(200,A,0),U,1),1,15),$E(X,37)=A
  1. ..S $E(X,54)=$P(BCHN,U,9)
  1. ..S $E(X,63)=$$POV(BCHX)
  1. ..S ^TMP($J,"BCHEGR",BCHLINE,0)=X,^TMP($J,"BCHEGR","IDX",BCHLINE,BCHLINE)=BCHX
  1. Q
  1. POV(R) ;
  1. I 'R Q ""
  1. NEW Y,X,P
  1. S X=0,Y="" F S X=$O(^BCHGRPD(R,21,X)) Q:X'=+X!(Y]"") S P=$P(^BCHGRPD(R,21,X,0),U),S=$P(^BCHGRPD(R,21,X,0),U,3) Q:'P Q:'S S:Y]"" Y=Y_"; " S Y=Y_$P(^BCHTPROB(P,0),U,2)_" - "_$P(^BCHTSERV(S,0),U,3)
  1. Q Y
  1. PAUSE ;EP
  1. K DIR
  1. S DIR(0)="EO",DIR("A")="Press enter to continue...." D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. Q
  1. PRTEF ;EP
  1. D EN^VALM2(XQORNOD(0),"OS")
  1. I '$D(VALMY) W !,"No records selected." D EXIT^BCHEGR Q
  1. S R=$O(VALMY(0)) I 'R K R,VALMY,XQORNOD W !,"No record selected." D EXIT^BCHEGR Q
  1. S BCHNG=0 S BCHNG=^TMP($J,"BCHEGR","IDX",R,R)
  1. I '$D(^BCHGRPD(BCHNG,0)) W !,"Not a valid GROUP." K R,BCHNG,R1 D PAUSE,EXIT^BCHEGR Q
  1. D FULL^VALM1
  1. I '$O(^BCHGRPD(BCHNG,61,0)) W !!,"There were no visits created for this group." D PAUSE,EXIT^BCHEGR Q
  1. W !!,"Forms will be generated for the following patient visits:"
  1. S BCHY=0 F S BCHY=$O(^BCHGRPD(BCHNG,61,BCHY)) Q:'BCHY S BCHR=$P(^BCHGRPD(BCHNG,61,BCHY,0),U) I $D(^BCHR(BCHR,0)) D
  1. .W !?2,$$VAL^XBDIQ1(90002,BCHR,1101),?34,$$VAL^XBDIQ1(90002,BCHR,.01)
  1. W !! S DIR(0)="Y",DIR("A")="Do you wish to PRINT a hard copy encounter form for each patient in the group",DIR("B")="N" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) D EXIT^BCHEGR Q
  1. I 'Y D EXIT^BCHEGR Q
  1. S XBRP="PRINT1^BCHEGR1",XBRC="",XBRX="EOJ^BCHEGR",XBNS="BCH"
  1. D ^XBDBQUE
  1. D EXIT^BCHEGR
  1. ;loop through all patients, records and print forms
  1. W !!!!
  1. Q
  1. PRINT1 ;
  1. S BCHGRPX=0 F S BCHGRPX=$O(^BCHGRPD(BCHNG,61,BCHGRPX)) Q:BCHGRPX'=+BCHGRPX!($G(BCHQUIT)) S BCHR=$P(^BCHGRPD(BCHNG,61,BCHGRPX,0),U,1) D PRINT1^BCHUFPP
  1. Q
  1. DISP ;EP - called from protocol
  1. D EN^VALM2(XQORNOD(0),"OS")
  1. NEW BCHG,BCHX
  1. I '$D(VALMY) W !,"No records selected." D EXIT^BCHEGR Q
  1. S R=$O(VALMY(0)) I 'R K R,VALMY,XQORNOD W !,"No record selected." D EXIT^BCHEGR Q
  1. S BCHG=0 S BCHG=^TMP($J,"BCHEGR","IDX",R,R)
  1. I '$D(^BCHGRPD(BCHG,0)) W !,"Not a valid GROUP." K BCHRDEL,R,BCHG,R1 D PAUSE,EXIT^BCHEGR Q
  1. D FULL^VALM1
  1. S %="Group Definition Display"
  1. D VIEWR^XBLM("DISP1^BCHEGR1",%)
  1. D EXIT^BCHEGR
  1. Q
  1. DUP ;EP
  1. D EN^VALM2(XQORNOD(0),"OS")
  1. I '$D(VALMY) W !,"No records selected." D EXIT^BCHEGR Q
  1. S R=$O(VALMY(0)) I 'R K R,VALMY,XQORNOD W !,"No record selected." D EXIT^BCHEGR Q
  1. S BCHG=0 S BCHG=^TMP($J,"BCHEGR","IDX",R,R)
  1. I '$D(^BCHGRPD(BCHG,0)) W !,"Not a valid GROUP." K BCHRDEL,R,BCHG,R1 D PAUSE D EXIT^BCHEGR Q
  1. D FULL^VALM1
  1. W !
  1. K DIR S DIR(0)="D^:DT:EP",DIR("A")="Enter Date for the new group entry" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) D EXIT^BCHEGR Q
  1. S BCHD=Y,BCHDATE=Y
  1. S X=BCHD,DIC="^BCHGRPD(",DLAYGO=90002.67,DIADD=1,DIC(0)="L" K DD,DO D FILE^DICN
  1. I Y=-1 W !!,"entry of new group failed." K DIADD,DLAYGO D ^XBFMK D EXIT^BCHEGR Q
  1. S BCHNG=+Y
  1. K DIADD,DLAYGO D ^XBFMK
  1. K ^BCHGRPD("B",BCHD,BCHNG)
  1. M ^BCHGRPD(BCHNG)=^BCHGRPD(BCHG)
  1. K ^BCHGRPD(BCHNG,61) ;get rid of records
  1. ;per BJ 5/13/09 - get rid of deceased patients
  1. NEW BCHX,P,BCHY
  1. S BCHX=0 F S BCHX=$O(^BCHGRPD(BCHNG,51,BCHX)) Q:BCHX'=+BCHX D
  1. .S P=$P($G(^BCHGRPD(BCHNG,51,BCHX,0)),U)
  1. .Q:P=""
  1. .Q:P["BCHPAT"
  1. .S P=+P
  1. .I $$DOD^AUPNPAT(P)]"" D
  1. ..S DA(1)=BCHNG,DA=BCHX,DIK="^BCHGRPD("_DA(1)_",51," D ^DIK K DA,DIK
  1. S DA=BCHNG,DIE="^BCHGRPD(",DR=".01///"_BCHD_";.04////"_DT_";.12////"_DUZ_";.13////"_DT_";.15////"_DUZ D ^DIE
  1. S DA=BCHNG,DIK="^BCHGRPD(" D IX1^DIK
  1. ;move over assessments
  1. S BCHX=0 F S BCHX=$O(^BCHGRPDA("AD",BCHG,BCHX)) Q:BCHX'=+BCHX D
  1. .;add new record
  1. .S DIC="^BCHGRPDA(",X=$P(^BCHGRPDA(BCHX,0),U,1),DIC(0)="L",DIADD=1,DLAYGO=90002.68 D FILE^DICN
  1. .I Y=-1 K DIC,DIADD,DLAYGO W !!,"Failed..." H 5 Q
  1. .K DIC,DIADD,DLAYGO
  1. .S BCHY=+Y
  1. .M ^BCHGRPDA(BCHY)=^BCHGRPDA(BCHX)
  1. .S DA=BCHY,DIK="^BCHGRPDA(" D IX1^DIK
  1. .K DA,DIK
  1. .S DIE="^BCHGRPDA(",DR=".03////"_BCHNG,DA=BCHY D ^DIE K DIE,DA,DR
  1. D EDITGRP^BCHEGR
  1. Q
  1. DISP1 ;EP - called from XBLM
  1. S DIC="^BCHGRPD(",DA=BCHG D EN^DIQ
  1. NEW BCHX,F,V
  1. W "Assessments:"
  1. S BCHX=0 F S BCHX=$O(^BCHGRPDA("AD",BCHG,BCHX)) Q:BCHX'=+BCHX D
  1. .F F=".01",".04",".05",".06" W ?14,$P(^DD(90002.68,F,0),U,1),":",?35,$$VAL^XBDIQ1(90002.68,BCHX,F),!
  1. Q
  1. DISP2 ;EP - called from XBLM
  1. S DIC="^BCHGRPD(",DA=BCHNG D EN^DIQ
  1. NEW BCHX,F,V
  1. W "Assessments:"
  1. S BCHX=0 F S BCHX=$O(^BCHGRPDA("AD",BCHNG,BCHX)) Q:BCHX'=+BCHX D
  1. .F F=".01",".04",".05",".06" W ?14,$P(^DD(90002.68,F,0),U,1),":",?35,$$VAL^XBDIQ1(90002.68,BCHX,F),!
  1. Q