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

BCHEGP.m

Go to the documentation of this file.
  1. BCHEGP ; IHS/CMI/LAB - group preventive services group form ;
  1. ;;2.0;IHS RPMS CHR SYSTEM;;OCT 23, 2012;Build 27
  1. ;
  1. START ;
  1. D INIT
  1. K BCHQUIT
  1. D GETDATA
  1. I $D(BCHQUIT) W !!,"Exiting group form entry" H 2 D EOJ Q
  1. D ^BCHEGP1
  1. ;print forms?
  1. PRINT ;
  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. Q:$D(DIRUT)
  1. Q:'Y
  1. S XBRP="PRINT1^BCHEGP",XBRC="",XBRX="EOJ^BCHEGP",XBNS="BCH"
  1. D ^XBDBQUE
  1. ;loop through all patients, records and print forms
  1. W !!!!
  1. Q
  1. PRINT1 ;
  1. S BCHR=0 F S BCHR=$O(^BCHGROUP(BCHFID,21,BCHR)) Q:BCHR'=+BCHR!($G(BCHQUIT)) D PRINT1^BCHUFPP
  1. Q
  1. INIT ; Write Header
  1. D ^XBFMK K DIADD,DLAYGO
  1. D TERM^VALM0
  1. W:$D(IOF) @IOF
  1. F BCHEGJ=1:1:11 S BCHEGX=$P($T(TEXT+BCHEGJ),";;",2) W !?80-$L(BCHEGX)\2,BCHEGX
  1. K BCHEGX,BCHEGJ
  1. W !!
  1. S BCHQUIT=""
  1. D ^BCHUIN
  1. K ^TMP("BCHEGP",$J)
  1. D KILL^AUPNPAT
  1. Q
  1. EOJ ;
  1. D EN^XBVK("BCH")
  1. K AUPNPAT,AUPNDAYS,AUPNSEX,AUPNDOB,AUPNDOD
  1. K %,%W,%Y,X,Y,DIR,DIRUT,DIC,DIE,DA,DR,DTOUT,DUOUT,%DT,DIU,DIV,DIW,DIPGM,DQ,DI,DIG,DIH,X1,X2,ZTSAVE
  1. D ^XBFMK K DIADD,DLAYGO
  1. Q
  1. GETDATA ; GET LOCATION OF ENCOUNTER
  1. W !
  1. ;create new group form entry
  1. S X="XXX",DIADD=1,DLAYGO=90002.97,DIC="^BCHGROUP(",DIC(0)="L" K DD,DO D FILE^DICN
  1. K DIADD,DLAYGO,DIC
  1. I Y=-1 W !!,"error creating group entry." S BCHQUIT=1
  1. S BCHFID=+Y
  1. D ^XBFMK
  1. S DA=BCHFID,Z="G"_BCHFID,DIE="^BCHGROUP(",DR=".01///"_Z D ^DIE K DIE,DR,DA
  1. W !!,"The form ID for this group form is ",$P(^BCHGROUP(BCHFID,0),U),".",!,"Please make a note of this. It will be needed if and when you need to ",!,"re-print forms.",!!
  1. K DIR S DIR(0)="E",DIR("A")="Press enter to continue" D ^DIR K DIR
  1. EDIT ;
  1. S DA=BCHFID,DDSFILE=90002.97,DR="[BCH GROUP ENTRY]" D ^DDS
  1. I $D(DIMSG) W !!,"ERROR IN SCREENMAN FORM!! ***NOTIFY PROGRAMMER***" S BCHQUIT=1 K DIMSG Q
  1. S C=0 I '$O(^BCHRGAS("AD",BCHFID,0)) W !!,"At least one POV is required!" S C=1
  1. F X=1:1:4,6,11,12 I $P(^BCHGROUP(BCHFID,0),U,X)="" S C=1
  1. S Y=0 F S Y=$O(^BCHRGAS("AD",BCHFID,Y)) Q:Y'=+Y F X=1,4,5,6 I $P(^BCHRGAS(Y,0),U,X)="" S C=1
  1. I C W !!,"Not all required data elements have been entered." D G:Y="E" EDIT W !,"Deleting group definition..." D DELGRP Q
  1. .S DIR(0)="S^E:Edit and Complete the Group Definition;D:Delete the Incomplete Definition",DIR("A")="What do you want to do",DIR("B")="E" KILL DA D ^DIR KILL DIR
  1. .I $D(DIRUT) S Y="D"
  1. .Q
  1. Q:$D(BCHQUIT)
  1. S BCHNUM=$P(^BCHGROUP(BCHFID,0),U,12)
  1. ;DISPLAY AND CONFIRM
  1. W !!,"I am going to ask you to enter ",BCHNUM," patient names. I will then create a",!,"record in the CHR file for each patient. The record will contain the",!,"following information: ",!
  1. S DIC="^BCHGROUP(",DA=BCHFID,DR="0" D EN^DIQ K DIC
  1. S BCHX=0 F S BCHX=$O(^BCHRGAS("AD",BCHFID,BCHX)) Q:BCHX'=+BCHX S DA=BCHX,DIC="^BCHRGAS(",DR=0 D EN^DIQ K DIC
  1. K DIR,DA,DTOUT,DIRUT,DUOUT,DIC,X,Y S DIR(0)="Y",DIR("A")="Do you wish to continue",DIR("B")="Y" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) S BCHQUIT=1 Q
  1. I 'Y S BCHQUIT=1 Q
  1. Q
  1. ;
  1. ;
  1. FORMID ;
  1. ;generate form id in file
  1. K DIC,DO,DD,D0 S X="XXX",DIC(0)="L",DIC="^BCHGROUP(",DIADD=1,DLAYGO=9001002.3,DIC("DR")=".02////"_DUZ_";.03////"_DT_";.04////"_BCHDATE D FILE^DICN I Y=-1 D Q
  1. .D ^XBFMK K DIADD,DLAYGO,DLAYGO,DR,DD S BCHQUIT=1 W !!,"Failure to create FORM ID. Notify programmer.",! Q
  1. S BCHFID=+Y
  1. K DIADD,DLAYGO D ^XBFMK
  1. S DA=BCHFID,Z="G"_BCHFID,DIE="^BCHGROUP(",DR=".01///"_Z D ^DIE K DIE,DR,DA
  1. W !,"The form ID for this group form is ",$P(^BCHGRP(BCHFID,0),U),".",!,"Please make a note of this. It will be needed if and when you need to ",!,"re-print forms.",!
  1. Q
  1. EOP ;EP - End of page.
  1. Q:$E(IOST)'="C"
  1. Q:$D(ZTQUEUED)!'(IOT="TRM")!$D(IO("S"))
  1. NEW DIR
  1. K DIRUT,DFOUT,DLOUT,DTOUT,DUOUT
  1. S DIR("A")="Press Enter",DIR(0)="E" D ^DIR
  1. Q
  1. ;----------
  1. TEXT ;
  1. ;;IHS/RPMS CHR REPORTING SYSTEM
  1. ;;
  1. ;;*************************
  1. ;;* GROUP FORM ENTER Mode *
  1. ;;*************************
  1. ;;
  1. ;;You will be asked to enter the data that will be included
  1. ;;on each patient's visit. You will then be asked to enter
  1. ;;each patient's name who attended the group session. Afer
  1. ;;that you will be given the opportunity to add measurements
  1. ;;and/or edit each patient's visit record.
  1. ;;
  1. ;
  1. REPRINT ;EP - called from option
  1. D RXIT
  1. W:$D(IOF) @IOF
  1. W !!,"This option should be used to print or re-print group encounter forms.",!!,"You must know the group ID form number or the date of the group visit."
  1. W !!,"Only group forms entered after PCC Data Entry Patch 5 was installed",!,"are available for re-printing.",!!
  1. W !!,"Please enter the group ID form or the date of the visit.",!
  1. D ^XBFMK
  1. S DIC="^BCHGROUP(",DIC(0)="AEMQ" D ^DIC
  1. I Y=-1 W !!,"No form selected" H 2 D RXIT Q
  1. S BCHFID=+Y
  1. S X=0 F S X=$O(^BCHGROUP(BCHFID,21,X)) Q:X'=+X S BCHEGP("FORMS",X)=""
  1. I '$D(BCHEGP("FORMS")) W !!,"There are no visits to print.",! H 2 D RXIT Q
  1. W !,"The following visit forms will be printed: "
  1. S X=0 F S X=$O(BCHEGP("FORMS",X)) Q:X'=+X D
  1. .W !?5,$$VAL^XBDIQ1(90002,X,.01),?30,$$VAL^XBDIQ1(90002,X,.04)
  1. D PRINT
  1. D RXIT
  1. Q
  1. RXIT ;
  1. D EN^XBVK("BCH")
  1. D ^XBFMK
  1. D KILL^AUPNPAT
  1. Q
  1. DELGRP ;
  1. NEW BCHX
  1. S BCHX=0 F S BCHX=$O(^BCHRGAS("AD",BCHFID,BCHX)) Q:BCHX'=+BCHX S DIK="^BCHRGAS(",DA=BCHX D ^DIK
  1. S DA=BCHFID,DIK="^BCHGROUP" D ^DIK K DIK,DA S BCHQUIT=1 K DIR S DIR(0)="E" D ^DIR K DIR
  1. Q