- RAUTL20 ;HISC/SWM-Utility Routine ;6/16/97 14:27
- ;;5.0;Radiology/Nuclear Medicine;**5,34,47**;Mar 16, 1998;Build 21
- ;
- EN1 ; for displaying + and . during case lookup
- S RAPRTSET=0
- Q:'$D(RADFN)!('$D(RADTI))!('$D(RACNI))
- Q:RADFN=""!(RADTI="")!(RACNI="")
- ; output : RAPRTSET=1 : case is part of a combined PRINTset, & flag it
- ; RAMEMLOW=1 : case is lowest ien of print set AND flag it
- N RA1,RA2,RA3,RA4,RA5,RA6,RA7,RACN S RA1="",RA3="A",RA5=0
- S RACN=+$G(^RADPT(RADFN,"DT",RADTI,"P",RACNI,0))
- S RAMEMLOW=0
- S RAPRTSET=$P($G(^RADPT(RADFN,"DT",RADTI,"P",RACNI,0)),"^",25)=2
- Q:'RAPRTSET
- ; put + infront of lowest ien of case that has MEMBER OF SET = 2
- F S RA1=$O(^RADPT(RADFN,"DT",RADTI,"P",RA1)) Q:RA1="" Q:$P($G(^(RA1,0)),U,25)=2 ; RA1 is at lowest ien with MEMBER OF SET = 2
- S:RACNI=RA1 RAMEMLOW=1
- S RA1="" F S RA1=$O(^RADPT(RADFN,"DT",RADTI,"P","B",RA1)) Q:RA1="" D LOOP1
- I RA5 S RAPRTSET=0,RAMEMLOW=0 ;don't display if ptrs to #74 differ within set
- Q
- LOOP1 ; RA1= : for-loop var which happens to be the CASE NUMBER (70.03; .01)
- ; RA2= : (1) ien for 70.03 (2) also, pointer value to file #74
- ; RA3= : holds earliest case with pointer value to file #74
- ; RA4= : (ienof #70.03)=case number^procedure pointers^ptr #74
- ; RA5=0 : all cases in set point to same non-null rarpt() or all null
- ; regardless of cancelled status
- ; RA5<>0: one or more cases in set point to different rarpt()
- ; RA6= : pointer to file #72 examination status
- ; RA7=1 : denote call of LOOP1 came from EN2 and not from EN1
- S RA2=$O(^RADPT(RADFN,"DT",RADTI,"P","B",RA1,0))
- ; skip rec if it's not part of combined report
- Q:$P(^RADPT(RADFN,"DT",RADTI,"P",RA2,0),"^",25)'=2
- N RASSAN,RACNDSP S RASSAN=$$SSANVAL^RAHLRU1(RADFN,RADTI,RA2)
- S RACNDSP=$S((RASSAN'=""):RASSAN,1:RA1)
- ;
- I $$USESSAN^RAHLRU1() S:$G(RA7) RA4=RA2,RA4(RA4)=RACNDSP
- I '$$USESSAN^RAHLRU1() S:$G(RA7) RA4=RA2,RA4(RA4)=RA1
- S RA2=$P(^RADPT(RADFN,"DT",RADTI,"P",RA2,0),"^",17),RA6=$P(^(0),"^",3) S:$G(RA7) RA4(RA4)=RA4(RA4)_"^"_$P(^(0),"^",2)_"^"_$P(^(0),"^",17)_"^"_$P(^(0),"^",3)
- ; skip if exm canc'd & exm's pc 17 is null
- I $P($G(^RA(72,+RA6,0)),"^",3)=0,RA2="" Q
- S:RA3="A" RA3=RA2
- I RA5=0,RA2]"" S RA5=RA2-RA3
- Q
- EN2(RA4) ; display all print members' procs during report editing/printg
- S RAPRTSET=0
- Q:'$D(RADFN)!('$D(RADTI))!('$D(RACNI))
- Q:RADFN=""!(RADTI="")!(RACNI="")
- ; output : RA4(IEN OF #70.03)=CASE NUMBER^IEN OF #71 (procedure)^ptr #74
- ; ^exm stat
- ; RAPRTSET = 1 : case is part of a combined PRINTset
- N RA1,RA2,RA3,RA5,RA6,RA7 S RA1="",RA3="A",RA5=0,RA7=1
- F S RA1=$O(RA4(RA1)) Q:RA1="" K RA4(RA1) ;clean up array
- S RAPRTSET=$P($G(^RADPT(RADFN,"DT",RADTI,"P",RACNI,0)),"^",25)=2
- Q:'RAPRTSET
- F S RA1=$O(^RADPT(RADFN,"DT",RADTI,"P","B",RA1)) Q:RA1="" D LOOP1
- I RA5 S RAPRTSET=0 ;don't display if ptrs to #74 differ within set
- Q
- EN3(RA4) ; for print set, AFTER record is created in rarpt()
- Q:'$D(RADFN)!('$D(RADTI))
- Q:RADFN=""!(RADTI="")
- ; output :RA4(IEN OF #70.03)=CASE NUMBER (ONLY THOSE CASES FROM #74.05)
- N RA1,RA2,RA3,RA5 S RA1="",RA3="A"
- F S RA1=$O(RA4(RA1)) Q:RA1="" K RA4(RA1) ;clean up array
- S RA5=$S($G(RARPT):RARPT,$G(RAIEN):RAIEN,1:0) Q:RA5=0
- ;Careful; Here RA1 is the accession #. Format: 081809-12345 -or- 578-081809-12345
- F S RA1=$O(^RARPT(RA5,1,"B",RA1)) Q:RA1="" S RA2=$P(RA1,"-",$L(RA1,"-")),RA3=$O(^RADPT(RADFN,"DT",RADTI,"P","B",RA2,0)),RA4(RA3)=RA2
- Q
- XPRI ;loop thru sub-file #74.05 to set/kill prim. xref for other prt members
- Q:'$D(RADFNZ)!('$D(RADTIZ))!('$D(RARAD))!('$D(RAXREF))!('$D(DA))
- Q:$O(^RARPT(DA,1,"B",0))=""
- N RA1,RA200 S RA1=""
- XPRI1 S RA1=$O(^RARPT(DA,1,"B",RA1)) Q:RA1=""
- ;S RACNIZ=$O(^RADPT(RADFNZ,"DT",RADTIZ,"P","B",$P(RA1,"-",2),0))
- S RACNIZ=$O(^RADPT(RADFNZ,"DT",RADTIZ,"P","B",$P(RA1,"-",$L(RA1,"-")),0)) ;Set RACNIZ=last piece of RA1, not 2nd piece after P47 SSAN changes
- G:'$D(^RADPT(RADFNZ,"DT",RADTIZ,"P",RACNIZ,0)) XPRI1 S RA200=+$P(^(0),"^",RARADOLD) ; use raradold to get piece number in "p" node
- G XPRI1:'RA200
- S:$D(RASET) ^RARPT(RAXREF,RA200,DA)=""
- K:$D(RAKILL) ^RARPT(RAXREF,RA200,DA)
- G XPRI1
- XSEC ;loop thru sub-file #74.05 to set/kill sec. xref for other print members
- Q:'$D(RADFNZ)!('$D(RADTIZ))!('$D(RASECOND))!('$D(RAXREF))!('$D(DA))
- Q:$O(^RARPT(DA,1,"B",0))=""
- N RA1,RA2,RA200 S RA1=""
- XSEC1 S RA1=$O(^RARPT(DA,1,"B",RA1)) Q:RA1=""
- ;S RACNIZ=$O(^RADPT(RADFNZ,"DT",RADTIZ,"P","B",$P(RA1,"-",2),0))
- S RACNIZ=$O(^RADPT(RADFNZ,"DT",RADTIZ,"P","B",$P(RA1,"-",$L(RA1,"-")),0))
- G:'$D(^RADPT(RADFNZ,"DT",RADTIZ,"P",RACNIZ,0)) XSEC1 G:'$D(^(RASECOND,0)) XSEC1
- S RA2=0
- XSEC2 S RA2=$O(^RADPT(RADFNZ,"DT",RADTIZ,"P",RACNIZ,RASECOND,RA2)) G:'+RA2 XSEC1 S RA200=+$G(^(RA2,0))
- G:'RA200 XSEC2
- S:$D(RASET) ^RARPT(RAXREF,RA200,DA)=""
- K:$D(RAKILL) ^RARPT(RAXREF,RA200,DA)
- G XSEC2
- FLAGMEM() ;in distr list, print + if case is part of a print set
- ; called from File #74's print templates
- N RA1 S RA1=""
- I '$D(D0) Q RA1
- S RA1=$P($G(^RABTCH(74.4,D0,0)),U) I RA1="" Q RA1
- S RA1=$O(^RARPT(RA1,1,"B",0)) S:RA1]"" RA1="+"
- Q RA1
- DELPNT(RADFN,RADTI,RACNI) ; When an exam is cancelled & it is associated
- ; with data in the Nuc Med Exam Data file (70.2) ask the user if this
- ; pointer to 70.2 is to be deleted. Also delete the flag which
- ; indicates that the dosage ticket had printed for this exam.
- ; Called from CANCEL^RAEDCN
- ; Input: RADFN - Internal Entry Number (IEN) of the Patient.
- ; RADTI - Date/Time of the examination (inverse format)
- ; RACNI - IEN of the exam for this date/time
- ;
- ;- Delete entry in 'Dosage Ticket Printed?' field DD: 70.03, field: 29 -
- N RAFDA S RAFDA(70.03,RACNI_","_RADTI_","_RADFN_",",29)="@"
- D FILE^DIE("","RAFDA")
- ;----------------------------------------------------------------------
- Q:'+$P(^RADPT(RADFN,"DT",RADTI,"P",RACNI,0),"^",28) ;no NucMed Xam data
- K RAFDA N RAYN
- F D Q:RAYN]""
- . R !!?3,"Do you wish to delete the radiopharmaceutical data associated",!?3,"with this exam? No//",RAYN:DTIME
- . I RAYN["^"!('$T) S RAYN="^" Q ;don't delete pntr if '^' or timeout
- . S RAYN=$E(RAYN) S:RAYN="" RAYN="N"
- . S RAYN=$$UP^XLFSTR(RAYN) Q:RAYN="N" ;exit, don't del 70.2 pnt
- . I RAYN="Y" D Q ; delete the pointer to 70.2, then quit
- .. N RAFDA S RAFDA(70.03,RACNI_","_RADTI_","_RADFN_",",500)="@"
- .. D FILE^DIE("","RAFDA")
- .. ; NOTE: This silent FileMan call not only deletes the pointer to
- .. ; the entry in the Nuc Med Exam Data file (70.2), but the
- .. ; entry in 70.2 itself. This is because a M X-Ref exists on
- .. ; the field which points to file 70.2 that also deletes the
- .. ; entry in the Nuc Med Exam Data file. Please refer to
- .. ; ^DD(70.03,500,.. for more information.
- .. Q
- . W !!?3,"Enter 'Yes' to delete the radiopharmaceutical data associated with this exam.",!?3,"Enter 'No' to preserve the radiopharmaceutical data associated with this",!?3,"exam. "
- . W "Enter '^' to exit without deleting the radiopharmaceutical data",!?3,"associated with this exam.",$C(7)
- . S RAYN=""
- . Q
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HRAUTL20 7170 printed Jan 18, 2025@03:41:23 Page 2
- RAUTL20 ;HISC/SWM-Utility Routine ;6/16/97 14:27
- +1 ;;5.0;Radiology/Nuclear Medicine;**5,34,47**;Mar 16, 1998;Build 21
- +2 ;
- EN1 ; for displaying + and . during case lookup
- +1 SET RAPRTSET=0
- +2 if '$DATA(RADFN)!('$DATA(RADTI))!('$DATA(RACNI))
- QUIT
- +3 if RADFN=""!(RADTI="")!(RACNI="")
- QUIT
- +4 ; output : RAPRTSET=1 : case is part of a combined PRINTset, & flag it
- +5 ; RAMEMLOW=1 : case is lowest ien of print set AND flag it
- +6 NEW RA1,RA2,RA3,RA4,RA5,RA6,RA7,RACN
- SET RA1=""
- SET RA3="A"
- SET RA5=0
- +7 SET RACN=+$GET(^RADPT(RADFN,"DT",RADTI,"P",RACNI,0))
- +8 SET RAMEMLOW=0
- +9 SET RAPRTSET=$PIECE($GET(^RADPT(RADFN,"DT",RADTI,"P",RACNI,0)),"^",25)=2
- +10 if 'RAPRTSET
- QUIT
- +11 ; put + infront of lowest ien of case that has MEMBER OF SET = 2
- +12 ; RA1 is at lowest ien with MEMBER OF SET = 2
- FOR
- SET RA1=$ORDER(^RADPT(RADFN,"DT",RADTI,"P",RA1))
- if RA1=""
- QUIT
- if $PIECE($GET(^(RA1,0)),U,25)=2
- QUIT
- +13 if RACNI=RA1
- SET RAMEMLOW=1
- +14 SET RA1=""
- FOR
- SET RA1=$ORDER(^RADPT(RADFN,"DT",RADTI,"P","B",RA1))
- if RA1=""
- QUIT
- DO LOOP1
- +15 ;don't display if ptrs to #74 differ within set
- IF RA5
- SET RAPRTSET=0
- SET RAMEMLOW=0
- +16 QUIT
- LOOP1 ; RA1= : for-loop var which happens to be the CASE NUMBER (70.03; .01)
- +1 ; RA2= : (1) ien for 70.03 (2) also, pointer value to file #74
- +2 ; RA3= : holds earliest case with pointer value to file #74
- +3 ; RA4= : (ienof #70.03)=case number^procedure pointers^ptr #74
- +4 ; RA5=0 : all cases in set point to same non-null rarpt() or all null
- +5 ; regardless of cancelled status
- +6 ; RA5<>0: one or more cases in set point to different rarpt()
- +7 ; RA6= : pointer to file #72 examination status
- +8 ; RA7=1 : denote call of LOOP1 came from EN2 and not from EN1
- +9 SET RA2=$ORDER(^RADPT(RADFN,"DT",RADTI,"P","B",RA1,0))
- +10 ; skip rec if it's not part of combined report
- +11 if $PIECE(^RADPT(RADFN,"DT",RADTI,"P",RA2,0),"^",25)'=2
- QUIT
- +12 NEW RASSAN,RACNDSP
- SET RASSAN=$$SSANVAL^RAHLRU1(RADFN,RADTI,RA2)
- +13 SET RACNDSP=$SELECT((RASSAN'=""):RASSAN,1:RA1)
- +14 ;
- +15 IF $$USESSAN^RAHLRU1()
- if $GET(RA7)
- SET RA4=RA2
- SET RA4(RA4)=RACNDSP
- +16 IF '$$USESSAN^RAHLRU1()
- if $GET(RA7)
- SET RA4=RA2
- SET RA4(RA4)=RA1
- +17 SET RA2=$PIECE(^RADPT(RADFN,"DT",RADTI,"P",RA2,0),"^",17)
- SET RA6=$PIECE(^(0),"^",3)
- if $GET(RA7)
- SET RA4(RA4)=RA4(RA4)_"^"_$PIECE(^(0),"^",2)_"^"_$PIECE(^(0),"^",17)_"^"_$PIECE(^(0),"^",3)
- +18 ; skip if exm canc'd & exm's pc 17 is null
- +19 IF $PIECE($GET(^RA(72,+RA6,0)),"^",3)=0
- IF RA2=""
- QUIT
- +20 if RA3="A"
- SET RA3=RA2
- +21 IF RA5=0
- IF RA2]""
- SET RA5=RA2-RA3
- +22 QUIT
- EN2(RA4) ; display all print members' procs during report editing/printg
- +1 SET RAPRTSET=0
- +2 if '$DATA(RADFN)!('$DATA(RADTI))!('$DATA(RACNI))
- QUIT
- +3 if RADFN=""!(RADTI="")!(RACNI="")
- QUIT
- +4 ; output : RA4(IEN OF #70.03)=CASE NUMBER^IEN OF #71 (procedure)^ptr #74
- +5 ; ^exm stat
- +6 ; RAPRTSET = 1 : case is part of a combined PRINTset
- +7 NEW RA1,RA2,RA3,RA5,RA6,RA7
- SET RA1=""
- SET RA3="A"
- SET RA5=0
- SET RA7=1
- +8 ;clean up array
- FOR
- SET RA1=$ORDER(RA4(RA1))
- if RA1=""
- QUIT
- KILL RA4(RA1)
- +9 SET RAPRTSET=$PIECE($GET(^RADPT(RADFN,"DT",RADTI,"P",RACNI,0)),"^",25)=2
- +10 if 'RAPRTSET
- QUIT
- +11 FOR
- SET RA1=$ORDER(^RADPT(RADFN,"DT",RADTI,"P","B",RA1))
- if RA1=""
- QUIT
- DO LOOP1
- +12 ;don't display if ptrs to #74 differ within set
- IF RA5
- SET RAPRTSET=0
- +13 QUIT
- EN3(RA4) ; for print set, AFTER record is created in rarpt()
- +1 if '$DATA(RADFN)!('$DATA(RADTI))
- QUIT
- +2 if RADFN=""!(RADTI="")
- QUIT
- +3 ; output :RA4(IEN OF #70.03)=CASE NUMBER (ONLY THOSE CASES FROM #74.05)
- +4 NEW RA1,RA2,RA3,RA5
- SET RA1=""
- SET RA3="A"
- +5 ;clean up array
- FOR
- SET RA1=$ORDER(RA4(RA1))
- if RA1=""
- QUIT
- KILL RA4(RA1)
- +6 SET RA5=$SELECT($GET(RARPT):RARPT,$GET(RAIEN):RAIEN,1:0)
- if RA5=0
- QUIT
- +7 ;Careful; Here RA1 is the accession #. Format: 081809-12345 -or- 578-081809-12345
- +8 FOR
- SET RA1=$ORDER(^RARPT(RA5,1,"B",RA1))
- if RA1=""
- QUIT
- SET RA2=$PIECE(RA1,"-",$LENGTH(RA1,"-"))
- SET RA3=$ORDER(^RADPT(RADFN,"DT",RADTI,"P","B",RA2,0))
- SET RA4(RA3)=RA2
- +9 QUIT
- XPRI ;loop thru sub-file #74.05 to set/kill prim. xref for other prt members
- +1 if '$DATA(RADFNZ)!('$DATA(RADTIZ))!('$DATA(RARAD))!('$DATA(RAXREF))!('$DATA(DA))
- QUIT
- +2 if $ORDER(^RARPT(DA,1,"B",0))=""
- QUIT
- +3 NEW RA1,RA200
- SET RA1=""
- XPRI1 SET RA1=$ORDER(^RARPT(DA,1,"B",RA1))
- if RA1=""
- QUIT
- +1 ;S RACNIZ=$O(^RADPT(RADFNZ,"DT",RADTIZ,"P","B",$P(RA1,"-",2),0))
- +2 ;Set RACNIZ=last piece of RA1, not 2nd piece after P47 SSAN changes
- SET RACNIZ=$ORDER(^RADPT(RADFNZ,"DT",RADTIZ,"P","B",$PIECE(RA1,"-",$LENGTH(RA1,"-")),0))
- +3 ; use raradold to get piece number in "p" node
- if '$DATA(^RADPT(RADFNZ,"DT",RADTIZ,"P",RACNIZ,0))
- GOTO XPRI1
- SET RA200=+$PIECE(^(0),"^",RARADOLD)
- +4 if 'RA200
- GOTO XPRI1
- +5 if $DATA(RASET)
- SET ^RARPT(RAXREF,RA200,DA)=""
- +6 if $DATA(RAKILL)
- KILL ^RARPT(RAXREF,RA200,DA)
- +7 GOTO XPRI1
- XSEC ;loop thru sub-file #74.05 to set/kill sec. xref for other print members
- +1 if '$DATA(RADFNZ)!('$DATA(RADTIZ))!('$DATA(RASECOND))!('$DATA(RAXREF))!('$DATA(DA))
- QUIT
- +2 if $ORDER(^RARPT(DA,1,"B",0))=""
- QUIT
- +3 NEW RA1,RA2,RA200
- SET RA1=""
- XSEC1 SET RA1=$ORDER(^RARPT(DA,1,"B",RA1))
- if RA1=""
- QUIT
- +1 ;S RACNIZ=$O(^RADPT(RADFNZ,"DT",RADTIZ,"P","B",$P(RA1,"-",2),0))
- +2 SET RACNIZ=$ORDER(^RADPT(RADFNZ,"DT",RADTIZ,"P","B",$PIECE(RA1,"-",$LENGTH(RA1,"-")),0))
- +3 if '$DATA(^RADPT(RADFNZ,"DT",RADTIZ,"P",RACNIZ,0))
- GOTO XSEC1
- if '$DATA(^(RASECOND,0))
- GOTO XSEC1
- +4 SET RA2=0
- XSEC2 SET RA2=$ORDER(^RADPT(RADFNZ,"DT",RADTIZ,"P",RACNIZ,RASECOND,RA2))
- if '+RA2
- GOTO XSEC1
- SET RA200=+$GET(^(RA2,0))
- +1 if 'RA200
- GOTO XSEC2
- +2 if $DATA(RASET)
- SET ^RARPT(RAXREF,RA200,DA)=""
- +3 if $DATA(RAKILL)
- KILL ^RARPT(RAXREF,RA200,DA)
- +4 GOTO XSEC2
- FLAGMEM() ;in distr list, print + if case is part of a print set
- +1 ; called from File #74's print templates
- +2 NEW RA1
- SET RA1=""
- +3 IF '$DATA(D0)
- QUIT RA1
- +4 SET RA1=$PIECE($GET(^RABTCH(74.4,D0,0)),U)
- IF RA1=""
- QUIT RA1
- +5 SET RA1=$ORDER(^RARPT(RA1,1,"B",0))
- if RA1]""
- SET RA1="+"
- +6 QUIT RA1
- DELPNT(RADFN,RADTI,RACNI) ; When an exam is cancelled & it is associated
- +1 ; with data in the Nuc Med Exam Data file (70.2) ask the user if this
- +2 ; pointer to 70.2 is to be deleted. Also delete the flag which
- +3 ; indicates that the dosage ticket had printed for this exam.
- +4 ; Called from CANCEL^RAEDCN
- +5 ; Input: RADFN - Internal Entry Number (IEN) of the Patient.
- +6 ; RADTI - Date/Time of the examination (inverse format)
- +7 ; RACNI - IEN of the exam for this date/time
- +8 ;
- +9 ;- Delete entry in 'Dosage Ticket Printed?' field DD: 70.03, field: 29 -
- +10 NEW RAFDA
- SET RAFDA(70.03,RACNI_","_RADTI_","_RADFN_",",29)="@"
- +11 DO FILE^DIE("","RAFDA")
- +12 ;----------------------------------------------------------------------
- +13 ;no NucMed Xam data
- if '+$PIECE(^RADPT(RADFN,"DT",RADTI,"P",RACNI,0),"^",28)
- QUIT
- +14 KILL RAFDA
- NEW RAYN
- +15 FOR
- Begin DoDot:1
- +16 READ !!?3,"Do you wish to delete the radiopharmaceutical data associated",!?3,"with this exam? No//",RAYN:DTIME
- +17 ;don't delete pntr if '^' or timeout
- IF RAYN["^"!('$TEST)
- SET RAYN="^"
- QUIT
- +18 SET RAYN=$EXTRACT(RAYN)
- if RAYN=""
- SET RAYN="N"
- +19 ;exit, don't del 70.2 pnt
- SET RAYN=$$UP^XLFSTR(RAYN)
- if RAYN="N"
- QUIT
- +20 ; delete the pointer to 70.2, then quit
- IF RAYN="Y"
- Begin DoDot:2
- +21 NEW RAFDA
- SET RAFDA(70.03,RACNI_","_RADTI_","_RADFN_",",500)="@"
- +22 DO FILE^DIE("","RAFDA")
- +23 ; NOTE: This silent FileMan call not only deletes the pointer to
- +24 ; the entry in the Nuc Med Exam Data file (70.2), but the
- +25 ; entry in 70.2 itself. This is because a M X-Ref exists on
- +26 ; the field which points to file 70.2 that also deletes the
- +27 ; entry in the Nuc Med Exam Data file. Please refer to
- +28 ; ^DD(70.03,500,.. for more information.
- +29 QUIT
- End DoDot:2
- QUIT
- +30 WRITE !!?3,"Enter 'Yes' to delete the radiopharmaceutical data associated with this exam.",!?3,"Enter 'No' to preserve the radiopharmaceutical data associated with this",!?3,"exam. "
- +31 WRITE "Enter '^' to exit without deleting the radiopharmaceutical data",!?3,"associated with this exam.",$CHAR(7)
- +32 SET RAYN=""
- +33 QUIT
- End DoDot:1
- if RAYN]""
- QUIT
- +34 QUIT