- EC2P149B ;ALB/DBE - EC National Procedure Update; Feb 05, 2020@13:46
- ;;2.0;EVENT CAPTURE;**149**;May 8, 1996;Build 2
- ;
- ;This routine is used as a post-init in a KIDS build
- ;to modify the EC National Procedure file (#725)
- ;
- Q
- ;
- ADDPROC ;* add national procedures
- ;
- ; ECXX is in format:
- ; NAME^NATIONAL NUMBER^CPT CODE^FIRST NATIONAL NUMBER SEQUENCE
- ; LAST NATIONAL NUMBER SEQUENCE
- ;
- N ECX,ECXX,ECDINUM,ECNAME,ECCODE,ECCPT,ECCOUNT,X,Y,DIC,DIE,DA,DR,DLAYGO,DINUM
- N ECADD,ECBEG,ECEND,ECCODX,ECNAMX,ECSEQ,ECLIEN,ECSTR,ECCPTN
- D MES^XPDUTL(" ")
- D MES^XPDUTL("Adding new procedures to the EC NATIONAL PROCEDURE File (#725)...")
- S ECDINUM=$O(^EC(725,9999),-1),ECCOUNT=$P(^EC(725,0),U,4)
- F ECX=1:1 S ECXX=$P($T(NEW+ECX),";;",2) Q:ECXX="QUIT" D
- .S ECNAME=$P(ECXX,U,1),ECCODE=$P(ECXX,U,2),ECCPTN=$P(ECXX,U,3),ECCODX=ECCODE
- .S ECCPT=""
- .I ECCPTN'="" S ECCPT=$$FIND1^DIC(81,"","X",ECCPTN) I +ECCPT<1 D Q
- ..S ECSTR=" CPT code "_ECCPTN_" not a valid code in CPT File."
- ..D MES^XPDUTL(" ")
- ..D MES^XPDUTL(" ["_ECCODE_"] "_ECSTR)
- .S ECBEG=$P(ECXX,U,4),ECEND=$P(ECXX,U,5),ECNAMX=ECNAME
- .I ECBEG="" S X=ECNAME D FILPROC Q
- .F ECSEQ=ECBEG:1:ECEND D
- ..S ECADD="000"_ECSEQ,ECADD=$E(ECADD,$L(ECADD)-2,$L(ECADD))
- ..I $E(ECCODX,1,3)'="RCM" S ECNAME=ECNAMX_ECSEQ,X=ECNAME,ECCODE=ECCODX_ECADD
- ..E S ECNAME=ECNAMX_$E(ECADD,2,99),X=ECNAME,ECCODE=ECCODX_$E(ECADD,2,99)
- ..D FILPROC
- S $P(^EC(725,0),U,4)=ECCOUNT,X=$O(^EC(725,999999),-1),$P(^EC(725,0),U,3)=X
- Q
- ;
- FILPROC ;File national procedures
- I '$D(^EC(725,"D",ECCODE)) D
- .S ECDINUM=ECDINUM+1,DINUM=ECDINUM,DIC(0)="L",DLAYGO=725,DIC="^EC(725,"
- .S DIC("DR")="1////^S X=ECCODE;4///^S X=ECCPT"
- .D FILE^DICN
- .I +Y>0 D
- ..S ECCOUNT=ECCOUNT+1
- ..D MES^XPDUTL(" ")
- ..S ECSTR=" Entry #"_+Y_" for "_$P(Y,U,2)
- ..S ECSTR=ECSTR_$S(ECCPT'="":" [CPT: "_ECCPT_"]",1:"")_" ("_ECCODE_")"
- ..D BMES^XPDUTL(ECSTR)
- ..D MES^XPDUTL(" ...successfully added.")
- .I Y=-1 D
- ..D MES^XPDUTL(" ")
- ..D BMES^XPDUTL("ERROR when attempting to add "_ECNAME_" ("_ECCODE_")")
- I $D(^EC(725,"DL",ECCODE)) D
- .S ECLIEN=$O(^EC(725,"DL",ECCODE,""))
- .D MES^XPDUTL(" ")
- .D MES^XPDUTL(" Your site has a local procedure (entry #"_ECLIEN_") in File #725")
- .D MES^XPDUTL(" which uses "_ECCODE_" as its National Number.")
- .D MES^XPDUTL(" Please inactivate this local procedure.")
- .D MES^XPDUTL(" ")
- .K Y
- Q
- NEW ;national procedures to add;;descript^nation #^CPT code^beg seq^end seq
- ;;HOSPICE SERVICE^CH126^G9473
- ;;SM EVAL MD (5-10 MINS)^SM007^99421
- ;;SM EVAL MD (11-20 MINS)^SM008^99422
- ;;SM EVAL MD (GT 21 MINS)^SM009^99423
- ;;SM EVAL NON-MD (5-10 MINS)^SM010^98970
- ;;SM EVAL NON-MD (11-20 MINS)^SM011^98971
- ;;SM EVAL NON-MD (GT 21 MINS)^SM012^98972
- ;;QUIT
- ;
- NAMECHG ;* change national procedure names
- ;
- ; ECXX is in format:
- ; NATIONAL NUMBER^NEW NAME
- ;
- N ECX,ECXX,ECDA,DA,DR,DIC,DIE,X,Y,ECSTR
- D MES^XPDUTL(" ")
- D BMES^XPDUTL("Changing names in EC NATIONAL PROCEDURE File (#725)...")
- D MES^XPDUTL(" ")
- F ECX=1:1 S ECXX=$P($T(CHNG+ECX),";;",2) Q:ECXX="QUIT" D
- .I $D(^EC(725,"D",$P(ECXX,U,1))) D
- ..S ECDA=+$O(^EC(725,"D",$P(ECXX,U,1),0))
- ..I $D(^EC(725,ECDA,0)) D
- ...S DA=ECDA,DR=".01////^S X=$P(ECXX,U,2)",DIE="^EC(725," D ^DIE
- ...D MES^XPDUTL(" ")
- ...D MES^XPDUTL(" Entry #"_ECDA_" for "_$P(ECXX,U,1))
- ...D BMES^XPDUTL(" ... field (#.01) updated to "_$P(ECXX,U,2)_".")
- .I '$D(^EC(725,"D",$P(ECXX,U,1))) D
- ..D MES^XPDUTL(" ")
- ..S ECSTR="Can't find entry for "_$P(ECXX,U,1)
- ..D BMES^XPDUTL(ECSTR_" ...field (#.01) not updated.")
- Q
- ;
- CHNG ;name changes -national code #^new procedure name
- ;;CH100^RITE/SACRMNT/ORDNCE
- ;;CH103^WORSHIP
- ;;CH109^FUNERAL/MEM SERVICE&GRAVE
- ;;CH110^IND CARE/COUNSEL
- ;;CH114^FAM CARE/COUNSEL
- ;;CH118^GROUP SMALL
- ;;CH122^SPIRITUAL ASSESSMENT
- ;;CH125^GROUP IDT MTG
- ;;QUIT
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HEC2P149B 3895 printed Feb 18, 2025@23:21:43 Page 2
- EC2P149B ;ALB/DBE - EC National Procedure Update; Feb 05, 2020@13:46
- +1 ;;2.0;EVENT CAPTURE;**149**;May 8, 1996;Build 2
- +2 ;
- +3 ;This routine is used as a post-init in a KIDS build
- +4 ;to modify the EC National Procedure file (#725)
- +5 ;
- +6 QUIT
- +7 ;
- ADDPROC ;* add national procedures
- +1 ;
- +2 ; ECXX is in format:
- +3 ; NAME^NATIONAL NUMBER^CPT CODE^FIRST NATIONAL NUMBER SEQUENCE
- +4 ; LAST NATIONAL NUMBER SEQUENCE
- +5 ;
- +6 NEW ECX,ECXX,ECDINUM,ECNAME,ECCODE,ECCPT,ECCOUNT,X,Y,DIC,DIE,DA,DR,DLAYGO,DINUM
- +7 NEW ECADD,ECBEG,ECEND,ECCODX,ECNAMX,ECSEQ,ECLIEN,ECSTR,ECCPTN
- +8 DO MES^XPDUTL(" ")
- +9 DO MES^XPDUTL("Adding new procedures to the EC NATIONAL PROCEDURE File (#725)...")
- +10 SET ECDINUM=$ORDER(^EC(725,9999),-1)
- SET ECCOUNT=$PIECE(^EC(725,0),U,4)
- +11 FOR ECX=1:1
- SET ECXX=$PIECE($TEXT(NEW+ECX),";;",2)
- if ECXX="QUIT"
- QUIT
- Begin DoDot:1
- +12 SET ECNAME=$PIECE(ECXX,U,1)
- SET ECCODE=$PIECE(ECXX,U,2)
- SET ECCPTN=$PIECE(ECXX,U,3)
- SET ECCODX=ECCODE
- +13 SET ECCPT=""
- +14 IF ECCPTN'=""
- SET ECCPT=$$FIND1^DIC(81,"","X",ECCPTN)
- IF +ECCPT<1
- Begin DoDot:2
- +15 SET ECSTR=" CPT code "_ECCPTN_" not a valid code in CPT File."
- +16 DO MES^XPDUTL(" ")
- +17 DO MES^XPDUTL(" ["_ECCODE_"] "_ECSTR)
- End DoDot:2
- QUIT
- +18 SET ECBEG=$PIECE(ECXX,U,4)
- SET ECEND=$PIECE(ECXX,U,5)
- SET ECNAMX=ECNAME
- +19 IF ECBEG=""
- SET X=ECNAME
- DO FILPROC
- QUIT
- +20 FOR ECSEQ=ECBEG:1:ECEND
- Begin DoDot:2
- +21 SET ECADD="000"_ECSEQ
- SET ECADD=$EXTRACT(ECADD,$LENGTH(ECADD)-2,$LENGTH(ECADD))
- +22 IF $EXTRACT(ECCODX,1,3)'="RCM"
- SET ECNAME=ECNAMX_ECSEQ
- SET X=ECNAME
- SET ECCODE=ECCODX_ECADD
- +23 IF '$TEST
- SET ECNAME=ECNAMX_$EXTRACT(ECADD,2,99)
- SET X=ECNAME
- SET ECCODE=ECCODX_$EXTRACT(ECADD,2,99)
- +24 DO FILPROC
- End DoDot:2
- End DoDot:1
- +25 SET $PIECE(^EC(725,0),U,4)=ECCOUNT
- SET X=$ORDER(^EC(725,999999),-1)
- SET $PIECE(^EC(725,0),U,3)=X
- +26 QUIT
- +27 ;
- FILPROC ;File national procedures
- +1 IF '$DATA(^EC(725,"D",ECCODE))
- Begin DoDot:1
- +2 SET ECDINUM=ECDINUM+1
- SET DINUM=ECDINUM
- SET DIC(0)="L"
- SET DLAYGO=725
- SET DIC="^EC(725,"
- +3 SET DIC("DR")="1////^S X=ECCODE;4///^S X=ECCPT"
- +4 DO FILE^DICN
- +5 IF +Y>0
- Begin DoDot:2
- +6 SET ECCOUNT=ECCOUNT+1
- +7 DO MES^XPDUTL(" ")
- +8 SET ECSTR=" Entry #"_+Y_" for "_$PIECE(Y,U,2)
- +9 SET ECSTR=ECSTR_$SELECT(ECCPT'="":" [CPT: "_ECCPT_"]",1:"")_" ("_ECCODE_")"
- +10 DO BMES^XPDUTL(ECSTR)
- +11 DO MES^XPDUTL(" ...successfully added.")
- End DoDot:2
- +12 IF Y=-1
- Begin DoDot:2
- +13 DO MES^XPDUTL(" ")
- +14 DO BMES^XPDUTL("ERROR when attempting to add "_ECNAME_" ("_ECCODE_")")
- End DoDot:2
- End DoDot:1
- +15 IF $DATA(^EC(725,"DL",ECCODE))
- Begin DoDot:1
- +16 SET ECLIEN=$ORDER(^EC(725,"DL",ECCODE,""))
- +17 DO MES^XPDUTL(" ")
- +18 DO MES^XPDUTL(" Your site has a local procedure (entry #"_ECLIEN_") in File #725")
- +19 DO MES^XPDUTL(" which uses "_ECCODE_" as its National Number.")
- +20 DO MES^XPDUTL(" Please inactivate this local procedure.")
- +21 DO MES^XPDUTL(" ")
- +22 KILL Y
- End DoDot:1
- +23 QUIT
- NEW ;national procedures to add;;descript^nation #^CPT code^beg seq^end seq
- +1 ;;HOSPICE SERVICE^CH126^G9473
- +2 ;;SM EVAL MD (5-10 MINS)^SM007^99421
- +3 ;;SM EVAL MD (11-20 MINS)^SM008^99422
- +4 ;;SM EVAL MD (GT 21 MINS)^SM009^99423
- +5 ;;SM EVAL NON-MD (5-10 MINS)^SM010^98970
- +6 ;;SM EVAL NON-MD (11-20 MINS)^SM011^98971
- +7 ;;SM EVAL NON-MD (GT 21 MINS)^SM012^98972
- +8 ;;QUIT
- +9 ;
- NAMECHG ;* change national procedure names
- +1 ;
- +2 ; ECXX is in format:
- +3 ; NATIONAL NUMBER^NEW NAME
- +4 ;
- +5 NEW ECX,ECXX,ECDA,DA,DR,DIC,DIE,X,Y,ECSTR
- +6 DO MES^XPDUTL(" ")
- +7 DO BMES^XPDUTL("Changing names in EC NATIONAL PROCEDURE File (#725)...")
- +8 DO MES^XPDUTL(" ")
- +9 FOR ECX=1:1
- SET ECXX=$PIECE($TEXT(CHNG+ECX),";;",2)
- if ECXX="QUIT"
- QUIT
- Begin DoDot:1
- +10 IF $DATA(^EC(725,"D",$PIECE(ECXX,U,1)))
- Begin DoDot:2
- +11 SET ECDA=+$ORDER(^EC(725,"D",$PIECE(ECXX,U,1),0))
- +12 IF $DATA(^EC(725,ECDA,0))
- Begin DoDot:3
- +13 SET DA=ECDA
- SET DR=".01////^S X=$P(ECXX,U,2)"
- SET DIE="^EC(725,"
- DO ^DIE
- +14 DO MES^XPDUTL(" ")
- +15 DO MES^XPDUTL(" Entry #"_ECDA_" for "_$PIECE(ECXX,U,1))
- +16 DO BMES^XPDUTL(" ... field (#.01) updated to "_$PIECE(ECXX,U,2)_".")
- End DoDot:3
- End DoDot:2
- +17 IF '$DATA(^EC(725,"D",$PIECE(ECXX,U,1)))
- Begin DoDot:2
- +18 DO MES^XPDUTL(" ")
- +19 SET ECSTR="Can't find entry for "_$PIECE(ECXX,U,1)
- +20 DO BMES^XPDUTL(ECSTR_" ...field (#.01) not updated.")
- End DoDot:2
- End DoDot:1
- +21 QUIT
- +22 ;
- CHNG ;name changes -national code #^new procedure name
- +1 ;;CH100^RITE/SACRMNT/ORDNCE
- +2 ;;CH103^WORSHIP
- +3 ;;CH109^FUNERAL/MEM SERVICE&GRAVE
- +4 ;;CH110^IND CARE/COUNSEL
- +5 ;;CH114^FAM CARE/COUNSEL
- +6 ;;CH118^GROUP SMALL
- +7 ;;CH122^SPIRITUAL ASSESSMENT
- +8 ;;CH125^GROUP IDT MTG
- +9 ;;QUIT