- BDMFS ; IHS/CMI/LAB - DMS FLOW SHEET MANAGEMENT UTILITY ;
- ;;2.0;DIABETES MANAGEMENT SYSTEM;**2**;JUN 14, 2007
- ;UTILITY PROGRAM TO MANAGE FLOW SHEET CREATION AND EDITING
- FS ;EP;FLOW SHEET MANAGEMENT
- S IOP="HOME"
- D ^%ZIS
- D FS1 Q:$D(BDMQUIT)!$D(BDMOUT)
- FSEXIT K BDMQUIT,BDMOUT,BDMJ,BDMX,BDMY,BDMSDA,BDMSNAM,BDMCINK,BDMCNK0,BDMCDA,BDMWHCH,BDMADA,BDMANAM,BDMSF,BDMCANN,BDMGO
- K ^TMP("BDMVR",$J)
- Q
- FS1 D FSEXIT
- D FSDISP
- Q
- FSDISP ;DISPLAY FLOW SHEET
- D VALM("BDM FLOW SHEET LIST")
- Q
- FSHEAD ;PRINT HEADER FOR FLOW SHEET MANAGEMENT
- W @IOF
- FSHEAD1 N X
- F X="DIABETES MANAGEMENT SYSTEM","FLOW SHEET MANAGEMENT" D
- .W !?(80-$L(X))\2,X
- Q
- DXHEAD ;PRINT HEADER FOR FLOW SHEET MANAGEMENT
- W @IOF
- D FSHEAD1
- N X
- F X="Diagnosti/Medication Flow Sheets"
- W !?(80-$L(X))\2,X
- Q
- FSDH ;DISPLAY HEADER FOR FLOW SHEET SYSTEM
- Q
- FSADD ;EP;ENTER A NEW FLOW SHEET
- S DIR(0)="FO^3:30"
- S DIR("A")="Flow Sheet Name"
- W !
- D DIR^BDMDIC
- I Y="" S BDMQUIT="" D TABACK Q
- I X="^" S BDMQUIT="" D TABACK Q
- S (X,BDMSNAM)=Y
- S DIC="^APCHSFLC("
- S DIC(0)="L"
- D FILE^BDMDIC
- S BDMSDA=+Y
- I 'BDMSDA D TABACK Q
- D FSCEDIT
- D FSCLIST
- TABACK S BDMGO="FS"
- D BACK
- Q
- FSEDIT ;EP;EDIT AN EXISTING FLOW SHEET
- D SELECT
- I $D(BDMQUIT) K BDMQUIT D TEBACK Q
- D FSCLIST
- TEBACK S BDMGO="FS"
- D BACK
- Q
- SELECT ;SELECT AN EXISTING FLOW SHEET
- S DIR(0)="NO^1:"_BDMJ
- S DIR("A")="Which Flow Sheet"
- W !
- D DIR^BDMDIC
- I Y<1 S BDMQUIT="" Q
- Q:'$D(BDMJ(Y))
- S BDMSDA=+BDMJ(Y)
- S BDMSNAM=$P(BDMJ(Y),U,2)
- D FSCLIST
- Q
- FSCEDIT ;EP;EDIT A FLOW SHEET COMPONENT
- S DA=BDMSDA
- S DIE="^APCHSFLC("
- S DR="[BDM FLOW SHEET COMPONENT]"
- D DDS^BDMDIC
- S BDMGO="FSC"
- D BACK
- Q
- FSINIT ;EP;INITIALIZE ARRAY FOR FLOW SHEET DISPLAY
- K ^TMP("BDMVR",$J),BDMJ
- S VALMCNT=0
- S X=" NO. Flow sheet"
- D Z(X)
- S X=" --- ------------------------------"
- D Z(X)
- N I,J,X,Y,Z
- S I=0
- S X=""
- F S X=$O(^APCHSFLC("B",X)) Q:X="" D
- .S Y=0
- .F S Y=$O(^APCHSFLC("B",X,Y)) Q:'Y D
- ..S I=I+1
- ..S A=" "_I
- ..S:$L(A)=5 A=" "_A
- ..S A=A_" "_X
- ..D Z(A)
- ..S BDMJ(I)=Y_U_X
- I '$D(^TMP("BDMVR",$J)) D
- .S VALMCNT=2
- .S X="NO FLOW SHEET ON FILE FOR "_BDMX
- .D Z(X)
- S BDMJ=I
- Q
- VALM(BDMX) ;VALM INTERFACE
- S VALMCC=1 ;1=screen mode, 0=scrolling mode
- D TERM^VALM0
- D EN^VALM(BDMX)
- D CLEAR^VALM1
- Q
- FSCLIST ;EP;TO DISPLAY ITEMS ON FLOW SHEET LIST
- D VALM("BDM FLOW SHEET COMPONENT LIST")
- Q
- FSCINIT ;EP;TO LIST ITEMS ON FLOW SHEET
- N A,B,J,X,Y,Z,BDMTYPE,BDMABEL
- K ^TMP("BDMVR",$J),BDMJ,BDMCS
- S VALMCNT=0
- S X=" "_BDMSNAM
- D Z(X)
- S X=" "
- D Z(X)
- S X=" Flowsheet Components"
- D Z(X)
- S X=" NO. ORDER TYPE LABEL WIDTH"
- D Z(X)
- S X=" --- ----- ------------------- -------------------- -----"
- D Z(X)
- S (J,BDMX)=0
- F S BDMX=$O(^APCHSFLC(BDMSDA,1,"B",BDMX)) Q:'BDMX D
- .S BDMCDA=0
- .F S BDMCDA=$O(^APCHSFLC(BDMSDA,1,"B",BDMX,BDMCDA)) Q:'BDMCDA D
- ..S X=$G(^APCHSFLC(BDMSDA,1,BDMCDA,0))
- ..Q:X=""
- ..S J=J+1
- ..S A=" "_J
- ..S:$L(A)=6 A=A_" "
- ..S A=A_" "
- ..S A=A_$P(X,U)
- ..S:$L($P(X,U))=1 A=A_" "
- ..S A=A_" "
- ..S BDMTYPE=$P($G(^APCHSFLI(+$P(X,U,2),0)),U)
- ..S BDMTYPE=BDMTYPE_$E(" ",1,20-$L(BDMTYPE))
- ..S A=A_BDMTYPE
- ..S A=A_" "
- ..S BDMABEL=$P(X,U,3)
- ..S BDMABEL=BDMABEL_$E(" ",1,20-$L(BDMABEL))
- ..S A=A_BDMABEL
- ..S A=A_" "
- ..S BDMWDTH=$P(X,U,4)
- ..S A=A_BDMWDTH
- ..S X=A
- ..D Z(X)
- ..S BDMJ(BDMSDA,J)=BDMCDA_U_A
- ..D MEMLIST
- S BDMJ=J
- Q
- FSCADD ;EP;TO ADD ITEM TO FLOW SHEET
- K BDM
- N X,Y
- I BDMANAM="DIAGNOSIS"!(BDMSNAM="PROBLEM LIST DIAGNOSIS") D I 1
- .S X=0
- .F S X=$O(^APCHSFLC(BDMSDA,1,X)) Q:'X D
- ..S Y=$G(^APCHSFLC(BDMSDA,1,X,0))
- ..S:$P(Y,U)]"" BDM(X)=$P(Y,U)_U_$S($P(Y,U,2)]"":$P(Y,U,2),1:$P(Y,U))
- .D ^BDMFS1
- .Q:$D(BDMQUIT)
- .S X=$P(BDM("LOW"),U)
- E D
- .D CLEAR^VALM1
- .W !?5,"Select an item to ADD to the"
- .W !!?5,BDMSNAM," Flow Sheet"
- .S DIC=BDMSF
- .S DIC(0)="AEMQZ"
- .S DIC("A")="Which "_BDMANAM_": "
- .W !
- .D DIC^BDMDIC
- .I +Y<1 S BDMQUIT="" Q
- .S BDM("LOW")=+Y
- .D X
- .S BDM("HIGH")=""
- I $D(BDMQUIT) D FSCBACK Q
- S DA(1)=BDMSDA
- S DIC="^APCHSFLC("_BDMSDA_",1,"
- S DIC(0)="L"
- S DIC("DR")=".02////"_BDM("HIGH")
- D FILE^BDMDIC:'$D(^APCHSFLC(BDMSDA,1,"B",X))
- FSCBACK ;EP;S BDMGO="FSC"
- D BACK
- Q
- X ;EVALUATE X FOR PROPER INTERNAL VALUE
- I BDMANAM="ADA CODE" S X=Y(0,0)
- I BDMANAM="RX" S X=+Y
- I BDMANAM="PROCEDURE (MEDICAL)" S X=Y(0,0)
- I BDMANAM="PATIENT ED TOPIC" S X=+Y
- I BDMANAM="HEALTH FACTORS" S X=+Y
- I BDMANAM="PROBLEM LIST DIAGNOSIS" S X=Y(0,0)
- Q
- FSCDEL ;EP;TO DELETE ITEM FROM FLOW SHEET
- D FSCSEL
- I $D(BDMQUIT) K BDMQUIT D FSCBACK Q
- N BDMI,BDMX
- F BDMI=1:1 S BDMX=$P(BDMY,",",BDMI) Q:BDMX="" D
- .Q:'$D(BDMJ(BDMSDA,BDMX))
- .S BDMCDA=+BDMJ(BDMSDA,BDMX)
- .S DA(1)=BDMSDA
- .S DA=BDMCDA
- .S DIK="^APCHSFLC("_DA(1)_",1,"
- .D DIK^BDMDIC
- S BDMGO="FSC"
- D BACK
- Q
- FSCSEL ;EP;SELECT EXISTING ITEM FROM A FLOW SHEET
- S DIR(0)="LO^1:"_BDMJ
- S DIR("A")="Whick Flow Sheet Component(s)"
- W !
- D DIR^BDMDIC
- I Y<1 S BDMQUIT="" Q
- S BDMY=Y
- Q
- BACK ;EP;SETUP FOR RETURN TO LISTMAN
- S VALMBCK="R"
- D FSINIT:BDMGO="FS"
- D FSCINIT:BDMGO="FSC"
- D MEMINIT:BDMGO="FSM"
- D TERM^VALM0
- Q
- MEMBERS ;EP;TO SPECIFY THE MEMBERS FOR A FLOW SHEET COMPONENT
- D FSCSEL
- I $D(BDMQUIT) K BDMQUIT D FSCBACK Q
- F BDMI=1:1 S BDMX=$P(BDMY,",",BDMI) Q:BDMX=""!$D(BDMQUIT) D
- .Q:'$D(BDMJ(BDMSDA,BDMX))
- .S BDMCDA=+BDMJ(BDMSDA,BDMX)
- .Q:'BDMCDA
- .S BDMTYPE=$G(^APCHSFLI(+$P($G(^APCHSFLC(+BDMSDA,1,+BDMCDA,0)),U,2),0))
- .D MEMDISP
- Q
- MEMSEL ;SELECT THE MEMBER OF THE COMPONENT TO EDIT OR DELETE
- S DIR(0)="LO^1:"_BDMJ
- S DIR("A")="Whick Component Members(s)"
- W !
- D DIR^BDMDIC
- I Y<1 S BDMQUIT="" Q
- S BDMY=Y
- Q
- MEMADD ;EP;TO ADD MEMBERS TO A FLOW SHEET COMPONENT
- S BDMTYPE=$G(^APCHSFLI(+$P($G(^APCHSFLC(+BDMSDA,1,+BDMCDA,0)),U,2),0))
- F D MADD1 Q:$D(BDMQUIT)
- K BDMQUIT
- D MBACK
- Q
- MADD1 W @IOF
- W !?5,"Select"
- W !?5,$P(BDMTYPE,U),?25,"to add to the"
- W !?5,$P(BDMTYPE,U),?25,"component of the "
- W !?5,BDMSNAM,?25,"Flow Sheet"
- S DIC=+$P(BDMTYPE,U,2)
- I 'DIC S BDMQUIT="" Q
- S DIC=^DIC(DIC,0,"GL")
- I DIC="" S BDMQUIT="" Q
- S BDMDIC=DIC
- S DIC(0)="AEMQZ"
- S DIC("A")="Which "_$P(BDMTYPE,U)_": "
- W !
- D DIC^BDMDIC
- I +Y<1 S BDMQUIT="" Q
- S X=+Y_";"_$E(BDMDIC,2,99)
- S $P(^APCHSFLC(BDMSDA,1,BDMCDA,2,0),U,2)="9001020.15AV"
- S DA(2)=BDMSDA
- S DA(1)=BDMCDA
- S DIC="^APCHSFLC("_BDMSDA_",1,"_BDMCDA_",2,"
- S DIC(0)="L"
- D FILE^BDMDIC
- Q
- MEMDEL ;EP;TO DELETE MEMBERS FROM A FLOW SHEET COMPONENT
- N BDMY
- D MEMSEL
- I $D(BDMQUIT) K BDMQUIT D MBACK Q
- F BDMI=1:1 S BDMX=$P(BDMY,",",BDMI) Q:BDMX="" D
- .Q:'$D(BDMJ(BDMSDA,BDMCDA,BDMX))
- .S DA=+BDMJ(BDMSDA,BDMCDA,BDMX)
- .S DA(2)=BDMSDA
- .S DA(1)=BDMCDA
- .S DIK="^APCHSFLC("_DA(2)_",1,"_DA(1)_",2,"
- .D DIK^BDMDIC
- MBACK S BDMGO="FSM"
- D BACK
- Q
- DELETE ;EP;TO DELETE FLOW SHEET COMPONENT
- Q
- MEMDISP ;DISPLAY MEMBERS OF A COMPONENT
- D VALM("BDM FLOW SHEET MEMBERS")
- Q
- MEMINIT ;EP;TO LIST ITEMS ON FLOW SHEET
- K ^TMP("BDMVR",$J),BDMJ
- S VALMCNT=0
- S X=" "_$P(BDMTYPE,U)
- D Z(X)
- S X=" ---------------------------"
- D Z(X)
- N A,B,X,Y
- S BDMMDA=0
- F S BDMMDA=$O(^APCHSFLC(BDMSDA,1,BDMCDA,2,BDMMDA)) Q:'BDMMDA D
- .S X=$G(^APCHSFLC(BDMSDA,1,BDMCDA,2,BDMMDA,0))
- .Q:X=""
- .S BDMGL=U_$P(X,";",2)
- .S:$E(BDMGL,$L(BDMGL))="(" BDMGL=$E(BDMGL,1,$L(BDMGL)-1)
- .S:$E(BDMGL,$L(BDMGL))="," BDMGL=$E(BDMGL,1,$L(BDMGL)-1)_")"
- .S BDMDA=+X
- .S X=$P($G(@BDMGL@(+X,0)),U,$S(BDMGL'["AUTTMSR":1,1:2))
- .S A=" "_(VALMCNT-1)
- .S:$L(A)=6 A=A_" "
- .S A=A_" "
- .S A=A_X
- .S X=A
- .D Z(X)
- .S BDMJ(BDMSDA,BDMCDA,VALMCNT-2)=BDMMDA_U_A
- S BDMJ=VALMCNT-2
- Q
- MEMLIST ;LIST MEMBERS OF EACH COMPONENT FOR DISPLAY WITH COMPONENTS
- N J,X,Y,BDMX,BDMMDA
- S (J,BDMMDA)=0
- F S BDMMDA=$O(^APCHSFLC(BDMSDA,1,BDMCDA,2,BDMMDA)) Q:'BDMMDA D
- .S X=$G(^APCHSFLC(BDMSDA,1,BDMCDA,2,BDMMDA,0))
- .Q:X=""
- .S J=J+1
- .S BDMGL=U_$P(X,";",2)
- .S:$E(BDMGL,$L(BDMGL))="(" BDMGL=$E(BDMGL,1,$L(BDMGL)-1)
- .S:$E(BDMGL,$L(BDMGL))="," BDMGL=$E(BDMGL,1,$L(BDMGL)-1)_")"
- .S X=$P($G(@BDMGL@(+X,0)),U,$S(BDMGL'["AUTTMSR":1,1:2))
- .S A=" "_X
- .S X=A
- .D Z(X)
- Q
- S VALMSG="- Prev Screen QU Quit ?? More Actions"
- Q
- Z(X) ;SET TMP GLOBAL
- S VALMCNT=VALMCNT+1
- S ^TMP("BDMVR",$J,VALMCNT,0)=X
- Q
- BDMFS ; IHS/CMI/LAB - DMS FLOW SHEET MANAGEMENT UTILITY ;
- +1 ;;2.0;DIABETES MANAGEMENT SYSTEM;**2**;JUN 14, 2007
- +2 ;UTILITY PROGRAM TO MANAGE FLOW SHEET CREATION AND EDITING
- FS ;EP;FLOW SHEET MANAGEMENT
- +1 SET IOP="HOME"
- +2 DO ^%ZIS
- +3 DO FS1
- IF $DATA(BDMQUIT)!$DATA(BDMOUT)
- QUIT
- FSEXIT KILL BDMQUIT,BDMOUT,BDMJ,BDMX,BDMY,BDMSDA,BDMSNAM,BDMCINK,BDMCNK0,BDMCDA,BDMWHCH,BDMADA,BDMANAM,BDMSF,BDMCANN,BDMGO
- +1 KILL ^TMP("BDMVR",$JOB)
- +2 QUIT
- FS1 DO FSEXIT
- +1 DO FSDISP
- +2 QUIT
- FSDISP ;DISPLAY FLOW SHEET
- +1 DO VALM("BDM FLOW SHEET LIST")
- +2 QUIT
- FSHEAD ;PRINT HEADER FOR FLOW SHEET MANAGEMENT
- +1 WRITE @IOF
- FSHEAD1 NEW X
- +1 FOR X="DIABETES MANAGEMENT SYSTEM","FLOW SHEET MANAGEMENT"
- Begin DoDot:1
- +2 WRITE !?(80-$LENGTH(X))\2,X
- End DoDot:1
- +3 QUIT
- DXHEAD ;PRINT HEADER FOR FLOW SHEET MANAGEMENT
- +1 WRITE @IOF
- +2 DO FSHEAD1
- +3 NEW X
- +4 FOR X="Diagnosti/Medication Flow Sheets"
- +5 WRITE !?(80-$LENGTH(X))\2,X
- +6 QUIT
- FSDH ;DISPLAY HEADER FOR FLOW SHEET SYSTEM
- +1 QUIT
- FSADD ;EP;ENTER A NEW FLOW SHEET
- +1 SET DIR(0)="FO^3:30"
- +2 SET DIR("A")="Flow Sheet Name"
- +3 WRITE !
- +4 DO DIR^BDMDIC
- +5 IF Y=""
- SET BDMQUIT=""
- DO TABACK
- QUIT
- +6 IF X="^"
- SET BDMQUIT=""
- DO TABACK
- QUIT
- +7 SET (X,BDMSNAM)=Y
- +8 SET DIC="^APCHSFLC("
- +9 SET DIC(0)="L"
- +10 DO FILE^BDMDIC
- +11 SET BDMSDA=+Y
- +12 IF 'BDMSDA
- DO TABACK
- QUIT
- +13 DO FSCEDIT
- +14 DO FSCLIST
- TABACK SET BDMGO="FS"
- +1 DO BACK
- +2 QUIT
- FSEDIT ;EP;EDIT AN EXISTING FLOW SHEET
- +1 DO SELECT
- +2 IF $DATA(BDMQUIT)
- KILL BDMQUIT
- DO TEBACK
- QUIT
- +3 DO FSCLIST
- TEBACK SET BDMGO="FS"
- +1 DO BACK
- +2 QUIT
- SELECT ;SELECT AN EXISTING FLOW SHEET
- +1 SET DIR(0)="NO^1:"_BDMJ
- +2 SET DIR("A")="Which Flow Sheet"
- +3 WRITE !
- +4 DO DIR^BDMDIC
- +5 IF Y<1
- SET BDMQUIT=""
- QUIT
- +6 IF '$DATA(BDMJ(Y))
- QUIT
- +7 SET BDMSDA=+BDMJ(Y)
- +8 SET BDMSNAM=$PIECE(BDMJ(Y),U,2)
- +9 DO FSCLIST
- +10 QUIT
- FSCEDIT ;EP;EDIT A FLOW SHEET COMPONENT
- +1 SET DA=BDMSDA
- +2 SET DIE="^APCHSFLC("
- +3 SET DR="[BDM FLOW SHEET COMPONENT]"
- +4 DO DDS^BDMDIC
- +5 SET BDMGO="FSC"
- +6 DO BACK
- +7 QUIT
- FSINIT ;EP;INITIALIZE ARRAY FOR FLOW SHEET DISPLAY
- +1 KILL ^TMP("BDMVR",$JOB),BDMJ
- +2 SET VALMCNT=0
- +3 SET X=" NO. Flow sheet"
- +4 DO Z(X)
- +5 SET X=" --- ------------------------------"
- +6 DO Z(X)
- +7 NEW I,J,X,Y,Z
- +8 SET I=0
- +9 SET X=""
- +10 FOR
- SET X=$ORDER(^APCHSFLC("B",X))
- IF X=""
- QUIT
- Begin DoDot:1
- +11 SET Y=0
- +12 FOR
- SET Y=$ORDER(^APCHSFLC("B",X,Y))
- IF 'Y
- QUIT
- Begin DoDot:2
- +13 SET I=I+1
- +14 SET A=" "_I
- +15 IF $LENGTH(A)=5
- SET A=" "_A
- +16 SET A=A_" "_X
- +17 DO Z(A)
- +18 SET BDMJ(I)=Y_U_X
- End DoDot:2
- End DoDot:1
- +19 IF '$DATA(^TMP("BDMVR",$JOB))
- Begin DoDot:1
- +20 SET VALMCNT=2
- +21 SET X="NO FLOW SHEET ON FILE FOR "_BDMX
- +22 DO Z(X)
- End DoDot:1
- +23 SET BDMJ=I
- +24 QUIT
- VALM(BDMX) ;VALM INTERFACE
- +1 ;1=screen mode, 0=scrolling mode
- SET VALMCC=1
- +2 DO TERM^VALM0
- +3 DO EN^VALM(BDMX)
- +4 DO CLEAR^VALM1
- +5 QUIT
- FSCLIST ;EP;TO DISPLAY ITEMS ON FLOW SHEET LIST
- +1 DO VALM("BDM FLOW SHEET COMPONENT LIST")
- +2 QUIT
- FSCINIT ;EP;TO LIST ITEMS ON FLOW SHEET
- +1 NEW A,B,J,X,Y,Z,BDMTYPE,BDMABEL
- +2 KILL ^TMP("BDMVR",$JOB),BDMJ,BDMCS
- +3 SET VALMCNT=0
- +4 SET X=" "_BDMSNAM
- +5 DO Z(X)
- +6 SET X=" "
- +7 DO Z(X)
- +8 SET X=" Flowsheet Components"
- +9 DO Z(X)
- +10 SET X=" NO. ORDER TYPE LABEL WIDTH"
- +11 DO Z(X)
- +12 SET X=" --- ----- ------------------- -------------------- -----"
- +13 DO Z(X)
- +14 SET (J,BDMX)=0
- +15 FOR
- SET BDMX=$ORDER(^APCHSFLC(BDMSDA,1,"B",BDMX))
- IF 'BDMX
- QUIT
- Begin DoDot:1
- +16 SET BDMCDA=0
- +17 FOR
- SET BDMCDA=$ORDER(^APCHSFLC(BDMSDA,1,"B",BDMX,BDMCDA))
- IF 'BDMCDA
- QUIT
- Begin DoDot:2
- +18 SET X=$GET(^APCHSFLC(BDMSDA,1,BDMCDA,0))
- +19 IF X=""
- QUIT
- +20 SET J=J+1
- +21 SET A=" "_J
- +22 IF $LENGTH(A)=6
- SET A=A_" "
- +23 SET A=A_" "
- +24 SET A=A_$PIECE(X,U)
- +25 IF $LENGTH($PIECE(X,U))=1
- SET A=A_" "
- +26 SET A=A_" "
- +27 SET BDMTYPE=$PIECE($GET(^APCHSFLI(+$PIECE(X,U,2),0)),U)
- +28 SET BDMTYPE=BDMTYPE_$EXTRACT(" ",1,20-$LENGTH(BDMTYPE))
- +29 SET A=A_BDMTYPE
- +30 SET A=A_" "
- +31 SET BDMABEL=$PIECE(X,U,3)
- +32 SET BDMABEL=BDMABEL_$EXTRACT(" ",1,20-$LENGTH(BDMABEL))
- +33 SET A=A_BDMABEL
- +34 SET A=A_" "
- +35 SET BDMWDTH=$PIECE(X,U,4)
- +36 SET A=A_BDMWDTH
- +37 SET X=A
- +38 DO Z(X)
- +39 SET BDMJ(BDMSDA,J)=BDMCDA_U_A
- +40 DO MEMLIST
- End DoDot:2
- End DoDot:1
- +41 SET BDMJ=J
- +42 QUIT
- FSCADD ;EP;TO ADD ITEM TO FLOW SHEET
- +1 KILL BDM
- +2 NEW X,Y
- +3 IF BDMANAM="DIAGNOSIS"!(BDMSNAM="PROBLEM LIST DIAGNOSIS")
- Begin DoDot:1
- +4 SET X=0
- +5 FOR
- SET X=$ORDER(^APCHSFLC(BDMSDA,1,X))
- IF 'X
- QUIT
- Begin DoDot:2
- +6 SET Y=$GET(^APCHSFLC(BDMSDA,1,X,0))
- +7 IF $PIECE(Y,U)]""
- SET BDM(X)=$PIECE(Y,U)_U_$SELECT($PIECE(Y,U,2)]"":$PIECE(Y,U,2),1:$PIECE(Y,U))
- End DoDot:2
- +8 DO ^BDMFS1
- +9 IF $DATA(BDMQUIT)
- QUIT
- +10 SET X=$PIECE(BDM("LOW"),U)
- End DoDot:1
- IF 1
- +11 IF '$TEST
- Begin DoDot:1
- +12 DO CLEAR^VALM1
- +13 WRITE !?5,"Select an item to ADD to the"
- +14 WRITE !!?5,BDMSNAM," Flow Sheet"
- +15 SET DIC=BDMSF
- +16 SET DIC(0)="AEMQZ"
- +17 SET DIC("A")="Which "_BDMANAM_": "
- +18 WRITE !
- +19 DO DIC^BDMDIC
- +20 IF +Y<1
- SET BDMQUIT=""
- QUIT
- +21 SET BDM("LOW")=+Y
- +22 DO X
- +23 SET BDM("HIGH")=""
- End DoDot:1
- +24 IF $DATA(BDMQUIT)
- DO FSCBACK
- QUIT
- +25 SET DA(1)=BDMSDA
- +26 SET DIC="^APCHSFLC("_BDMSDA_",1,"
- +27 SET DIC(0)="L"
- +28 SET DIC("DR")=".02////"_BDM("HIGH")
- +29 IF '$DATA(^APCHSFLC(BDMSDA,1,"B",X))
- DO FILE^BDMDIC
- FSCBACK ;EP;S BDMGO="FSC"
- +1 DO BACK
- +2 QUIT
- X ;EVALUATE X FOR PROPER INTERNAL VALUE
- +1 IF BDMANAM="ADA CODE"
- SET X=Y(0,0)
- +2 IF BDMANAM="RX"
- SET X=+Y
- +3 IF BDMANAM="PROCEDURE (MEDICAL)"
- SET X=Y(0,0)
- +4 IF BDMANAM="PATIENT ED TOPIC"
- SET X=+Y
- +5 IF BDMANAM="HEALTH FACTORS"
- SET X=+Y
- +6 IF BDMANAM="PROBLEM LIST DIAGNOSIS"
- SET X=Y(0,0)
- +7 QUIT
- FSCDEL ;EP;TO DELETE ITEM FROM FLOW SHEET
- +1 DO FSCSEL
- +2 IF $DATA(BDMQUIT)
- KILL BDMQUIT
- DO FSCBACK
- QUIT
- +3 NEW BDMI,BDMX
- +4 FOR BDMI=1:1
- SET BDMX=$PIECE(BDMY,",",BDMI)
- IF BDMX=""
- QUIT
- Begin DoDot:1
- +5 IF '$DATA(BDMJ(BDMSDA,BDMX))
- QUIT
- +6 SET BDMCDA=+BDMJ(BDMSDA,BDMX)
- +7 SET DA(1)=BDMSDA
- +8 SET DA=BDMCDA
- +9 SET DIK="^APCHSFLC("_DA(1)_",1,"
- +10 DO DIK^BDMDIC
- End DoDot:1
- +11 SET BDMGO="FSC"
- +12 DO BACK
- +13 QUIT
- FSCSEL ;EP;SELECT EXISTING ITEM FROM A FLOW SHEET
- +1 SET DIR(0)="LO^1:"_BDMJ
- +2 SET DIR("A")="Whick Flow Sheet Component(s)"
- +3 WRITE !
- +4 DO DIR^BDMDIC
- +5 IF Y<1
- SET BDMQUIT=""
- QUIT
- +6 SET BDMY=Y
- +7 QUIT
- BACK ;EP;SETUP FOR RETURN TO LISTMAN
- +1 SET VALMBCK="R"
- +2 IF BDMGO="FS"
- DO FSINIT
- +3 IF BDMGO="FSC"
- DO FSCINIT
- +4 IF BDMGO="FSM"
- DO MEMINIT
- +5 DO TERM^VALM0
- +6 QUIT
- MEMBERS ;EP;TO SPECIFY THE MEMBERS FOR A FLOW SHEET COMPONENT
- +1 DO FSCSEL
- +2 IF $DATA(BDMQUIT)
- KILL BDMQUIT
- DO FSCBACK
- QUIT
- +3 FOR BDMI=1:1
- SET BDMX=$PIECE(BDMY,",",BDMI)
- IF BDMX=""!$DATA(BDMQUIT)
- QUIT
- Begin DoDot:1
- +4 IF '$DATA(BDMJ(BDMSDA,BDMX))
- QUIT
- +5 SET BDMCDA=+BDMJ(BDMSDA,BDMX)
- +6 IF 'BDMCDA
- QUIT
- +7 SET BDMTYPE=$GET(^APCHSFLI(+$PIECE($GET(^APCHSFLC(+BDMSDA,1,+BDMCDA,0)),U,2),0))
- +8 DO MEMDISP
- End DoDot:1
- +9 QUIT
- MEMSEL ;SELECT THE MEMBER OF THE COMPONENT TO EDIT OR DELETE
- +1 SET DIR(0)="LO^1:"_BDMJ
- +2 SET DIR("A")="Whick Component Members(s)"
- +3 WRITE !
- +4 DO DIR^BDMDIC
- +5 IF Y<1
- SET BDMQUIT=""
- QUIT
- +6 SET BDMY=Y
- +7 QUIT
- MEMADD ;EP;TO ADD MEMBERS TO A FLOW SHEET COMPONENT
- +1 SET BDMTYPE=$GET(^APCHSFLI(+$PIECE($GET(^APCHSFLC(+BDMSDA,1,+BDMCDA,0)),U,2),0))
- +2 FOR
- DO MADD1
- IF $DATA(BDMQUIT)
- QUIT
- +3 KILL BDMQUIT
- +4 DO MBACK
- +5 QUIT
- MADD1 WRITE @IOF
- +1 WRITE !?5,"Select"
- +2 WRITE !?5,$PIECE(BDMTYPE,U),?25,"to add to the"
- +3 WRITE !?5,$PIECE(BDMTYPE,U),?25,"component of the "
- +4 WRITE !?5,BDMSNAM,?25,"Flow Sheet"
- +5 SET DIC=+$PIECE(BDMTYPE,U,2)
- +6 IF 'DIC
- SET BDMQUIT=""
- QUIT
- +7 SET DIC=^DIC(DIC,0,"GL")
- +8 IF DIC=""
- SET BDMQUIT=""
- QUIT
- +9 SET BDMDIC=DIC
- +10 SET DIC(0)="AEMQZ"
- +11 SET DIC("A")="Which "_$PIECE(BDMTYPE,U)_": "
- +12 WRITE !
- +13 DO DIC^BDMDIC
- +14 IF +Y<1
- SET BDMQUIT=""
- QUIT
- +15 SET X=+Y_";"_$EXTRACT(BDMDIC,2,99)
- +16 SET $PIECE(^APCHSFLC(BDMSDA,1,BDMCDA,2,0),U,2)="9001020.15AV"
- +17 SET DA(2)=BDMSDA
- +18 SET DA(1)=BDMCDA
- +19 SET DIC="^APCHSFLC("_BDMSDA_",1,"_BDMCDA_",2,"
- +20 SET DIC(0)="L"
- +21 DO FILE^BDMDIC
- +22 QUIT
- MEMDEL ;EP;TO DELETE MEMBERS FROM A FLOW SHEET COMPONENT
- +1 NEW BDMY
- +2 DO MEMSEL
- +3 IF $DATA(BDMQUIT)
- KILL BDMQUIT
- DO MBACK
- QUIT
- +4 FOR BDMI=1:1
- SET BDMX=$PIECE(BDMY,",",BDMI)
- IF BDMX=""
- QUIT
- Begin DoDot:1
- +5 IF '$DATA(BDMJ(BDMSDA,BDMCDA,BDMX))
- QUIT
- +6 SET DA=+BDMJ(BDMSDA,BDMCDA,BDMX)
- +7 SET DA(2)=BDMSDA
- +8 SET DA(1)=BDMCDA
- +9 SET DIK="^APCHSFLC("_DA(2)_",1,"_DA(1)_",2,"
- +10 DO DIK^BDMDIC
- End DoDot:1
- MBACK SET BDMGO="FSM"
- +1 DO BACK
- +2 QUIT
- DELETE ;EP;TO DELETE FLOW SHEET COMPONENT
- +1 QUIT
- MEMDISP ;DISPLAY MEMBERS OF A COMPONENT
- +1 DO VALM("BDM FLOW SHEET MEMBERS")
- +2 QUIT
- MEMINIT ;EP;TO LIST ITEMS ON FLOW SHEET
- +1 KILL ^TMP("BDMVR",$JOB),BDMJ
- +2 SET VALMCNT=0
- +3 SET X=" "_$PIECE(BDMTYPE,U)
- +4 DO Z(X)
- +5 SET X=" ---------------------------"
- +6 DO Z(X)
- +7 NEW A,B,X,Y
- +8 SET BDMMDA=0
- +9 FOR
- SET BDMMDA=$ORDER(^APCHSFLC(BDMSDA,1,BDMCDA,2,BDMMDA))
- IF 'BDMMDA
- QUIT
- Begin DoDot:1
- +10 SET X=$GET(^APCHSFLC(BDMSDA,1,BDMCDA,2,BDMMDA,0))
- +11 IF X=""
- QUIT
- +12 SET BDMGL=U_$PIECE(X,";",2)
- +13 IF $EXTRACT(BDMGL,$LENGTH(BDMGL))="("
- SET BDMGL=$EXTRACT(BDMGL,1,$LENGTH(BDMGL)-1)
- +14 IF $EXTRACT(BDMGL,$LENGTH(BDMGL))=","
- SET BDMGL=$EXTRACT(BDMGL,1,$LENGTH(BDMGL)-1)_")"
- +15 SET BDMDA=+X
- +16 SET X=$PIECE($GET(@BDMGL@(+X,0)),U,$SELECT(BDMGL'["AUTTMSR":1,1:2))
- +17 SET A=" "_(VALMCNT-1)
- +18 IF $LENGTH(A)=6
- SET A=A_" "
- +19 SET A=A_" "
- +20 SET A=A_X
- +21 SET X=A
- +22 DO Z(X)
- +23 SET BDMJ(BDMSDA,BDMCDA,VALMCNT-2)=BDMMDA_U_A
- End DoDot:1
- +24 SET BDMJ=VALMCNT-2
- +25 QUIT
- MEMLIST ;LIST MEMBERS OF EACH COMPONENT FOR DISPLAY WITH COMPONENTS
- +1 NEW J,X,Y,BDMX,BDMMDA
- +2 SET (J,BDMMDA)=0
- +3 FOR
- SET BDMMDA=$ORDER(^APCHSFLC(BDMSDA,1,BDMCDA,2,BDMMDA))
- IF 'BDMMDA
- QUIT
- Begin DoDot:1
- +4 SET X=$GET(^APCHSFLC(BDMSDA,1,BDMCDA,2,BDMMDA,0))
- +5 IF X=""
- QUIT
- +6 SET J=J+1
- +7 SET BDMGL=U_$PIECE(X,";",2)
- +8 IF $EXTRACT(BDMGL,$LENGTH(BDMGL))="("
- SET BDMGL=$EXTRACT(BDMGL,1,$LENGTH(BDMGL)-1)
- +9 IF $EXTRACT(BDMGL,$LENGTH(BDMGL))=","
- SET BDMGL=$EXTRACT(BDMGL,1,$LENGTH(BDMGL)-1)_")"
- +10 SET X=$PIECE($GET(@BDMGL@(+X,0)),U,$SELECT(BDMGL'["AUTTMSR":1,1:2))
- +11 SET A=" "_X
- +12 SET X=A
- +13 DO Z(X)
- End DoDot:1
- +14 QUIT
- +1 SET VALMSG="- Prev Screen QU Quit ?? More Actions"
- +2 QUIT
- Z(X) ;SET TMP GLOBAL
- +1 SET VALMCNT=VALMCNT+1
- +2 SET ^TMP("BDMVR",$JOB,VALMCNT,0)=X
- +3 QUIT