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

IBDF3.m

Go to the documentation of this file.
  1. IBDF3 ;ALB/CJM - ENCOUNTER FORM - EDIT SELECTION LIST ;NOV 16,1992
  1. ;;3.0;AUTOMATED INFO COLLECTION SYS;;APR 24, 1997
  1. ;
  1. EDITLIST ;expects IBBLK to be defined
  1. N IBLIST,IBVALMBG
  1. S IBVALMBG=VALMBG,VALMBCK="R"
  1. D SELECT
  1. I IBLIST D
  1. .Q:$$LSTDSCR2^IBDFU1(.IBLIST)
  1. .I IBLIST("DYNAMIC") W !,"You can not edit the contents of this list - it is determined at print time!" D PAUSE^IBDFU5 Q
  1. .D EN^VALM("IBDF DISPLAY GROUPS FOR EDIT")
  1. .K IBLIST
  1. .D UNCMPBLK^IBDF19(IBBLK)
  1. .I '$G(IBFASTXT) D
  1. ..D IDXBLOCK^IBDFU4
  1. ..S VALMBCK="R",VALMBG=IBVALMBG
  1. Q
  1. ONENTRY ;
  1. D IDXGRP
  1. Q
  1. ONEXIT ;
  1. K @VALMAR
  1. Q
  1. SELECT ;
  1. ; -- dic("s") passed in from ibdfgrp
  1. S IBLIST=""
  1. Q:'$G(IBBLK)
  1. S DIC="^IBE(357.2,",DIC(0)="EQ",D="C",X=IBBLK
  1. D IX^DIC K DIC
  1. S:+Y>0 IBLIST=+Y
  1. Q
  1. ADDBLANK() ;
  1. N IGRP
  1. S GRP="" F S GRP=$O(^IBE(357.4,"D",IBLIST,GRP)) Q:'GRP Q:$P(^IBE(357.4,GRP,0),"^")="BLANK"
  1. I 'GRP D
  1. .K DIC,DD,DO,DINUM S DIC="^IBE(357.4,",DIC(0)="",X="BLANK",DIC(0)=""
  1. .D FILE^DICN K DIC
  1. .S GRP=$S(+Y<0:"",1:+Y)
  1. I GRP K DA,DIE S DA=GRP,DIE="^IBE(357.4,",DR=".02////0;.03////"_IBLIST D ^DIE K DIE,DA,DR
  1. Q GRP
  1. IDXGRP ;build an index of groups in print order for list processor
  1. N GRP,GRPODR
  1. K @VALMAR
  1. S VALMCNT=0
  1. S GRPODR="" F S GRPODR=$O(^IBE(357.4,"APO",IBLIST,GRPODR)) Q:GRPODR="" D
  1. .S GRP="" F S GRP=$O(^IBE(357.4,"APO",IBLIST,GRPODR,GRP)) Q:'GRP D
  1. ..;
  1. ..;make sure the index is correct
  1. ..I $P($G(^IBE(357.4,GRP,0)),"^",3)'=IBLIST K DIK,DA S DIK="^IBE(357.4,",DA=GRP D IX^DIK K DIK,DA,^IBE(357.4,"APO",IBLIST,GRPODR,GRP) Q
  1. ..;
  1. ..S VALMCNT=VALMCNT+1
  1. ..S @VALMAR@(VALMCNT,0)=$$DISPLAY(GRP,VALMCNT),@VALMAR@("IDX",VALMCNT,VALMCNT)=GRP
  1. ..D FLDCTRL^VALM10(VALMCNT,"ID") ;set video for ID column
  1. Q
  1. LMGRPHDR ;sets the screen hdr
  1. S VALMHDR(1)="PRINT GROUPS CURRENTLY DEFINED FOR '"_$$LISTNAME_"' SELECTION LIST"
  1. Q
  1. DISPLAY(GRP,ROW) ;
  1. N NODE0,NAME,INV
  1. S NODE0=$G(^IBE(357.4,GRP,0)),NAME=$P(NODE0,"^"),INV=$P(NODE0,"^",4)
  1. I NAME="BLANK" S NAME="*i BLANK (Not Displayed)"
  1. I NAME'="BLANK",INV="I" S NAME="*i "_NAME
  1. I NAME'="BLANK",INV'="I" S NAME=" "_NAME
  1. Q $$PADRIGHT^IBDFU(ROW,6)_$J($P(NODE0,"^",2),6)_$J("",3)_$$PADRIGHT^IBDFU(NAME,40)_$J($$SLCTNCNT(GRP),6)_" selection(s)"
  1. SLCTNCNT(GRP) ;
  1. N CNT,SLCTN
  1. S CNT=0,SLCTN=""
  1. F S SLCTN=$O(^IBE(357.3,"D",GRP,SLCTN)) Q:'SLCTN S CNT=CNT+1
  1. Q CNT
  1. LISTNAME() ;
  1. Q $P($G(^IBE(357.2,IBLIST,0)),"^",1)
  1. ADDGRP ;
  1. N NAME,QUIT,GRP
  1. S QUIT=0
  1. F D Q:QUIT
  1. .K DIR S DIR(0)="357.4,.01O",DIR("B")="" D ^DIR K DIR I $D(DIRUT) S QUIT=1 Q
  1. .S NAME=Y
  1. .K DIC,DD,DO,DINUM S DIC="^IBE(357.4,",X=NAME,DIC(0)=""
  1. .D FILE^DICN K DIC,DIE,DA
  1. .I +Y<0 W !,"Unable to create a new record!" D PAUSE^VALM1 S QUIT=1 Q
  1. .I +Y>0 K DA S DA=+Y,DIE="^IBE(357.4,",DIE("NO^")="Any value",DR=".02;.04;.03////"_IBLIST D ^DIE K DIC,DIE,DR,DA
  1. .W !,"Now Another!",!
  1. D IDXGRP
  1. S VALMBCK="R"
  1. Q
  1. ;
  1. ADDEMPTY ;adds a blank group - a place holder that takes up space on the form
  1. ;
  1. N ORDER,QUIT,GRP
  1. S QUIT=0
  1. F D Q:QUIT
  1. .K DIR S DIR(0)="357.4,.02O",DIR("B")="" D ^DIR K DIR I (Y="")!$D(DIRUT) S QUIT=1 Q
  1. .S ORDER=Y
  1. .K DIC,DD,DO,DINUM S DIC="^IBE(357.4,",X=" ",DIC(0)=""
  1. .D FILE^DICN K DIC,DIE,DA
  1. .I +Y<0 W !,"Unable to create a new group record!" D PAUSE^VALM1 S QUIT=1 Q
  1. .I +Y>0 K DA S DA=+Y,DIE="^IBE(357.4,",DIE("NO^")="Any value",DR=".02////"_ORDER_";.03////"_IBLIST D ^DIE K DIC,DIE,DR,DA
  1. .W !,"Now Another!",!
  1. D IDXGRP
  1. S VALMBCK="R"
  1. Q
  1. EDTSLCTN ;
  1. N SEL,IBGRP S SEL=""
  1. I $G(VALMCNT) D
  1. .D EN^VALM2($G(XQORNOD(0)),"S")
  1. .S SEL=$O(VALMY(""))
  1. I SEL="" D
  1. .S IBGRP=$$ADDBLANK Q:'IBGRP
  1. E S IBGRP=$G(@VALMAR@("IDX",SEL,SEL))
  1. D:IBGRP SLCTNS^IBDF4,IDXGRP
  1. S VALMBCK="R"
  1. Q
  1. EDITGRP ;
  1. N SEL,GRP
  1. S VALMBCK="R"
  1. D EN^VALM2($G(XQORNOD(0)),"S")
  1. S SEL="" F S SEL=$O(VALMY(SEL)) Q:'SEL D
  1. .S GRP=$G(@VALMAR@("IDX",SEL,SEL))
  1. .D:GRP
  1. ..K DIE,DA S DIE=357.4,DA=GRP,DR=".01;.02;.04" D ^DIE
  1. ..I '$D(DA) D DELSLCTN
  1. ..K DIE,DA,DR,DIC
  1. D IDXGRP
  1. S VALMBCK="R"
  1. Q
  1. DELSLCTN ;deletes a group's selections
  1. N SLCTN
  1. S SLCTN="",DIK="^IBE(357.3,"
  1. F S SLCTN=$O(^IBE(357.3,"D",GRP,SLCTN)) Q:'SLCTN I $P($G(^IBE(357.3,SLCTN,0)),"^",4)=GRP K DA S DA=SLCTN D ^DIK
  1. K DIK,DA
  1. Q
  1. DELGRP ;delete a group and all of its selections
  1. N SEL,GRP
  1. S VALMBCK="R"
  1. D EN^VALM2($G(XQORNOD(0)))
  1. S SEL="" F S SEL=$O(VALMY(SEL)) Q:'SEL D
  1. .S GRP=$G(@VALMAR@("IDX",SEL,SEL))
  1. .Q:'$$RUSURE^IBDFU5($P($G(^IBE(357.4,GRP,0)),"^"))
  1. .I GRP D DELSLCTN K DA S DIK="^IBE(357.4,",DA=GRP D ^DIK K DIK
  1. D IDXGRP
  1. S VALMBCK="R"
  1. Q