GMRYED3 ;HIRMFO/YH-START IV AND IV MAINTENANCE ENTRY POINT ;9/10/92
;;4.0;Intake/Output;;Apr 25, 1997
EN1 ;SELECTE IV I/O AND IV MAINTENANCE
S (GMRVIDT,GDR,GMROUT)=0,GSITE="" D MASPT^GMRYRP5
LIST W ! S (GMROUT,GNN)=0,DA=DFN D LISTOP^GMRYED4
W !!,"Select from 1 to ",GNN," (enter 1,3-5 etc.) or <RET> to exit: " R GNI:DTIME S:'$T!(GNI["^")!(GNI="") GMROUT=1 G:GMROUT Q
I (GNI["?") W ! D LISTQUES^GMRYED4 W !!,"Enter <RET> to continue or ^ to exit " R X:DTIME S:'$T!(X["^")!(X="") GMROUT=1 G:GMROUT Q
D VALIDAT^GMRYED1 I '$D(GTYP)!GMROUT(1) W $C(7)," ??" G LIST
S GGNN=0 F S GGNN=$O(GTYP(GGNN)) Q:GGNN'>0 I $D(GNN(GGNN)) S GOPT=$P(GNN(GGNN),"^",2) D @GOPT I GMROUT S GMROUT=0 Q
Q K GPORT,X,Y,DD,DR,DIE,DIC,DLAYGO,%,GMRZZZ,GSAVE,GLINE,GMRX,GSAVE,GDCREAS,GIV,GMRDC,GMRVN,GIVDT,GREC,GSITE,GMRDA,GIN,GLEFT,GGDA,GMRY,GDCIV,GDCDT,DA,GDR,GDCIV,GADD,GGNN,GNN,GNI,GNUR,GOPT,GMRW,GTYP,GCT,GDATA,GMRXX,GMRZ,GNOW,GST G:GMROUT=0 LIST
D Q^GMRYED2 K GFLAG,GHLOC,GMRVTYP,GMRYY,GCATH Q
;
STARTIV ;
S GMROUT=0 W @IOF,!!,"*** START IV ***",! S GDCIV=0 D EN3^GMRYED1
K GFLAG Q
;
DCIV ;REMOVE IV FROM IV SITE
D DCIV^GMRYDCIV Q
;
MAINTN ;CARE/MAINTENANCE/FLUSH OPTION ENTRY POINT
S GMROUT=0,GDCIV=4 W @IOF,!!,"*** CARE/MAINTENANCE/FLUSH ***",! D SELSITE^GMRYMNT W:GMRXY=0 !!,"There are no sites with IV(s) running or DC'd within 24 hours.",! D:GMRXY>0 EN1^GMRYMNT K GSTDC,GST,GCT,GX,GMRXY Q
;
HANG ;D/C CURRENT SOLUTION/ADD THE SAME SOLUTION
S GMROUT=0,DA=DFN,GDCIV=5,GMRDC=0 W @IOF,!!,"*** REPLACE SAME SOLUTION ***",! D LISTIV^GMRYUT0,SEL^GMRYED4 Q:X="" I GMROUT D Q4^GMRYED6 Q
S GDR=0 I $G(GCATH)'="" S GCATH(2)=$S($D(^GMRD(126.74,"B",GCATH)):$O(^GMRD(126.74,"B",GCATH,0)),1:"")
D HANG^GMRYED4 D Q4^GMRYED6 Q
;
ADDONLY ;ADD ANOTHER SOLUTION (MULTIPLE SOLUTIONS FOR A LINE) WITHOUT DC CURRENT
S GDCIV=6,DA=DFN,(GMROUT,GMRDC)=0 W @IOF,!!,"*** ADD ADDITIONAL SOLUTION(S) ***",!! D SELSITE^GMRYMNT,SEL1^GMRYMNT Q:GMROUT!(GMRXY=0)!(X="") D DT^GMRYUT3 Q:GMROUT!(GX'>0)
;ONLY ONE INFUSION SITE
I GMRXY=1 W !,GSITE(GSITE) D SITEIV
S GMROUT(1)=0,GMROUT(1)=$$ADM^GMRYUT12(.GMROUT,DFN,GX) Q:GMROUT
S GMRLINE=0
SELECTP G:GMROUT QADD I GMRLINE>0,'$D(GMRPORT) G QADD
;OBTAIN PORT/LUMEN
K GHOLD S GCATH=GSITE(GSITE),GCATH(1)="",GCATH(2)=$O(^GMRD(126.74,"B",GCATH,0)) S GHOLD=GCATH(2),(GHOLD(1),GHOLD(2),GHOLD(3))="" D FINDPORT^GMRYSTCA(.GHOLD) S GCATH(1)=GHOLD(3) I GMROUT K GX,GHOLD G QADD
K GHOLD S GMRLINE=0 D SOLTYPE^GMRYUT7 I 'GMROUT S GMRDEL="",GDR=3,GADD="Y" D ADDIV^GMRYED2 G SELECTP
QADD D Q4^GMRYED6 K GST,GCT,GSDC,GMRLINE Q
Q
;
ADDSOL ;ADD IV SOLUTION
W @IOF,!!,"*** SOLUTION: REPLACE/DC/CONVERT/FINISH SOLUTION ***",! S GDCIV=0,GDCREAS=0
D ADDSOL1^GMRYED6 K GST,GCT,GDCDT,GDCREAS,%
Q
TITER ;ADJUST INFUSION RATE FOR A SELECTED SOLUTION
D INFUSE^GMRYINFS Q
;
FLUSH ;FLUSH OPTION ENTRY POINT
D FLUSH^GMRYFLSH Q
;
RESTART ;RESTAT AN IV
W @IOF,!!,"*** RESTART DC'd IV ***" S (GMROUT,GDCIV)=0 D RESTART^GMRYUT10
Q
SITEIV ;
S GDA="" F S GDA=$O(GST(GSITE,GDA)) Q:GDA="" W:GDA'="BLANK" !,?2,GDA S GPORT=GDA,GDA(1)=0 F S GDA(1)=$O(GST(GSITE,GDA,GDA(1))) Q:GDA(1)'>0 S GDATA=GST(GSITE,GDA,GDA(1),0) D WRITE^GMRYMNT
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HGMRYED3 3188 printed Dec 13, 2024@01:55:18 Page 2
GMRYED3 ;HIRMFO/YH-START IV AND IV MAINTENANCE ENTRY POINT ;9/10/92
+1 ;;4.0;Intake/Output;;Apr 25, 1997
EN1 ;SELECTE IV I/O AND IV MAINTENANCE
+1 SET (GMRVIDT,GDR,GMROUT)=0
SET GSITE=""
DO MASPT^GMRYRP5
LIST WRITE !
SET (GMROUT,GNN)=0
SET DA=DFN
DO LISTOP^GMRYED4
+1 WRITE !!,"Select from 1 to ",GNN," (enter 1,3-5 etc.) or <RET> to exit: "
READ GNI:DTIME
if '$TEST!(GNI["^")!(GNI="")
SET GMROUT=1
if GMROUT
GOTO Q
+2 IF (GNI["?")
WRITE !
DO LISTQUES^GMRYED4
WRITE !!,"Enter <RET> to continue or ^ to exit "
READ X:DTIME
if '$TEST!(X["^")!(X="")
SET GMROUT=1
if GMROUT
GOTO Q
+3 DO VALIDAT^GMRYED1
IF '$DATA(GTYP)!GMROUT(1)
WRITE $CHAR(7)," ??"
GOTO LIST
+4 SET GGNN=0
FOR
SET GGNN=$ORDER(GTYP(GGNN))
if GGNN'>0
QUIT
IF $DATA(GNN(GGNN))
SET GOPT=$PIECE(GNN(GGNN),"^",2)
DO @GOPT
IF GMROUT
SET GMROUT=0
QUIT
Q KILL GPORT,X,Y,DD,DR,DIE,DIC,DLAYGO,%,GMRZZZ,GSAVE,GLINE,GMRX,GSAVE,GDCREAS,GIV,GMRDC,GMRVN,GIVDT,GREC,GSITE,GMRDA,GIN,GLEFT,GGDA,GMRY,GDCIV,GDCDT,DA,GDR,GDCIV,GADD,GGNN,GNN,GNI,GNUR,GOPT,GMRW,GTYP,GCT,GDATA,GMRXX,GMRZ,GNOW,GST
if GMROUT=0
GOTO LIST
+1 DO Q^GMRYED2
KILL GFLAG,GHLOC,GMRVTYP,GMRYY,GCATH
QUIT
+2 ;
STARTIV ;
+1 SET GMROUT=0
WRITE @IOF,!!,"*** START IV ***",!
SET GDCIV=0
DO EN3^GMRYED1
+2 KILL GFLAG
QUIT
+3 ;
DCIV ;REMOVE IV FROM IV SITE
+1 DO DCIV^GMRYDCIV
QUIT
+2 ;
MAINTN ;CARE/MAINTENANCE/FLUSH OPTION ENTRY POINT
+1 SET GMROUT=0
SET GDCIV=4
WRITE @IOF,!!,"*** CARE/MAINTENANCE/FLUSH ***",!
DO SELSITE^GMRYMNT
if GMRXY=0
WRITE !!,"There are no sites with IV(s) running or DC'd within 24 hours.",!
if GMRXY>0
DO EN1^GMRYMNT
KILL GSTDC,GST,GCT,GX,GMRXY
QUIT
+2 ;
HANG ;D/C CURRENT SOLUTION/ADD THE SAME SOLUTION
+1 SET GMROUT=0
SET DA=DFN
SET GDCIV=5
SET GMRDC=0
WRITE @IOF,!!,"*** REPLACE SAME SOLUTION ***",!
DO LISTIV^GMRYUT0
DO SEL^GMRYED4
if X=""
QUIT
IF GMROUT
DO Q4^GMRYED6
QUIT
+2 SET GDR=0
IF $GET(GCATH)'=""
SET GCATH(2)=$SELECT($DATA(^GMRD(126.74,"B",GCATH)):$ORDER(^GMRD(126.74,"B",GCATH,0)),1:"")
+3 DO HANG^GMRYED4
DO Q4^GMRYED6
QUIT
+4 ;
ADDONLY ;ADD ANOTHER SOLUTION (MULTIPLE SOLUTIONS FOR A LINE) WITHOUT DC CURRENT
+1 SET GDCIV=6
SET DA=DFN
SET (GMROUT,GMRDC)=0
WRITE @IOF,!!,"*** ADD ADDITIONAL SOLUTION(S) ***",!!
DO SELSITE^GMRYMNT
DO SEL1^GMRYMNT
if GMROUT!(GMRXY=0)!(X="")
QUIT
DO DT^GMRYUT3
if GMROUT!(GX'>0)
QUIT
+2 ;ONLY ONE INFUSION SITE
+3 IF GMRXY=1
WRITE !,GSITE(GSITE)
DO SITEIV
+4 SET GMROUT(1)=0
SET GMROUT(1)=$$ADM^GMRYUT12(.GMROUT,DFN,GX)
if GMROUT
QUIT
+5 SET GMRLINE=0
SELECTP if GMROUT
GOTO QADD
IF GMRLINE>0
IF '$DATA(GMRPORT)
GOTO QADD
+1 ;OBTAIN PORT/LUMEN
+2 KILL GHOLD
SET GCATH=GSITE(GSITE)
SET GCATH(1)=""
SET GCATH(2)=$ORDER(^GMRD(126.74,"B",GCATH,0))
SET GHOLD=GCATH(2)
SET (GHOLD(1),GHOLD(2),GHOLD(3))=""
DO FINDPORT^GMRYSTCA(.GHOLD)
SET GCATH(1)=GHOLD(3)
IF GMROUT
KILL GX,GHOLD
GOTO QADD
+3 KILL GHOLD
SET GMRLINE=0
DO SOLTYPE^GMRYUT7
IF 'GMROUT
SET GMRDEL=""
SET GDR=3
SET GADD="Y"
DO ADDIV^GMRYED2
GOTO SELECTP
QADD DO Q4^GMRYED6
KILL GST,GCT,GSDC,GMRLINE
QUIT
+1 QUIT
+2 ;
ADDSOL ;ADD IV SOLUTION
+1 WRITE @IOF,!!,"*** SOLUTION: REPLACE/DC/CONVERT/FINISH SOLUTION ***",!
SET GDCIV=0
SET GDCREAS=0
+2 DO ADDSOL1^GMRYED6
KILL GST,GCT,GDCDT,GDCREAS,%
+3 QUIT
TITER ;ADJUST INFUSION RATE FOR A SELECTED SOLUTION
+1 DO INFUSE^GMRYINFS
QUIT
+2 ;
FLUSH ;FLUSH OPTION ENTRY POINT
+1 DO FLUSH^GMRYFLSH
QUIT
+2 ;
RESTART ;RESTAT AN IV
+1 WRITE @IOF,!!,"*** RESTART DC'd IV ***"
SET (GMROUT,GDCIV)=0
DO RESTART^GMRYUT10
+2 QUIT
SITEIV ;
+1 SET GDA=""
FOR
SET GDA=$ORDER(GST(GSITE,GDA))
if GDA=""
QUIT
if GDA'="BLANK"
WRITE !,?2,GDA
SET GPORT=GDA
SET GDA(1)=0
FOR
SET GDA(1)=$ORDER(GST(GSITE,GDA,GDA(1)))
if GDA(1)'>0
QUIT
SET GDATA=GST(GSITE,GDA,GDA(1),0)
DO WRITE^GMRYMNT
+2 QUIT