DVB450PT ;ALB/BWF POST-INSTALL FOR PATCH DVB*4*50 ;6/2/04
;;4.0;HINQ;**50**;03/25/92
;
;This routine will be run as a post-installation for patch DVB*4*50
;This routine will update the disability condition file. The
;updates will apply to the descriptions of 13 disability conditions
;so VistA matches what is contained in the CFR.
;
POST ;entry point for post-install, setting up checkpoints
N %
S %=$$NEWCP^XPDUTL("DVBLINE","EN^DVB450PT",1)
Q
;
EN ;begin processing
;
N DVBLINE
;
D BMES^XPDUTL(" >> *** Updating DISABILITY CONDITION file (#31)")
D MES^XPDUTL(" ")
;
;get value from checkpoints, previous run
S DVBLINE=+$$PARCP^XPDUTL("DVBLINE")
;
DVBNEW ;add new codes or modify name if code is in use
;
F DVBI=DVBLINE:1 S DVBJ=$P($T(NEWCODE+DVBI),";;",2) Q:DVBJ["$EXIT" D
.S DVBCODE=+DVBJ,DVBNAME=$E($P(DVBJ,"^",2),1,45),DVBLINE=DVBI
.S DVBDESC=$E($P(DVBJ,"^",3),1,200)
.;
.;add new code
.I '$D(^DIC(31,"C",DVBCODE)) D G UPDATECH
..K DD,DO
..S DIC="^DIC(31,",DIC(0)="L",DIC("DR")="2////"_DVBCODE_";10////"_DVBDESC
..S X=DVBNAME,DLAYGO=31
..D FILE^DICN
..D MES^XPDUTL(DVBCODE_": adding "_DVBCODE_" "_X)
..K DLAYGO,DIC,X
..Q
.;
.;modify name
.S DVBIEN=+$O(^DIC(31,"C",DVBCODE,0))
.S DVBREC=$G(^DIC(31,DVBIEN,0)),DVBOLDSC=$G(^DIC(31,DVBIEN,1)) I DVBREC']"" D G UPDATECH
..D MES^XPDUTL(" >>>> error "_DVBCODE_" in C x-reference and not in file 31")
..Q
.S DVBOLDN=$P(DVBREC,"^") I DVBOLDN=DVBNAME&(DVBOLDSC=DVBDESC) G UPDATECH
.S DA=DVBIEN,DIE="^DIC(31,",DR=".01////"_DVBNAME_";10////"_DVBDESC
.D ^DIE
.K DR,DA,DIE
.I DVBOLDN'=DVBNAME D
..D MES^XPDUTL(DVBCODE_": changing name from "_DVBOLDN)
..D MES^XPDUTL(" to "_DVBNAME)
.I DVBOLDSC'=DVBDESC D
..D MES^XPDUTL(DVBCODE_": changing description...")
..D MES^XPDUTL(" from: "_DVBOLDSC)
..D MES^XPDUTL(" to: "_DVBDESC)
.;
UPDATECH .;update checkpoint
.S %=$$UPCP^XPDUTL("DVBLINE",DVBLINE)
.Q
K DVBCODE,DVBI,DVBIEN,DVBJ,DVBNAME,DVBOLDN,DVBREC,DVBDESC,DVBOLDSC
Q
;
NEWCODE ;codes to be added or changed
;;5001^BONES AND JOINTS, TUBERCULOSIS OF^BONES AND JOINTS, TUBERCULOSIS OF, ACTIVE OR INACTIVE
;;5002^ARTHRITIS RHEUMATOID (ATROPHIC)^ARTHRITIS RHEUMATOID (ATROPHIC) AS AN ACTIVE PROCESS
;;5003^ARTHRITIS, DEGENERATIVE^ARTHRITIS, DEGENERATIVE (HYPERTROPHIC OR OSTEOARTHRITIS)
;;5004^ARTHRITIS, GONORRHEAL^ARTHRITIS, GONORRHEAL
;;5005^ARTHRITIS, PNEUMOCOCCIC^ARTHRITIS, PNEUMOCOCCIC
;;5006^ARTHRITIS, TYPHOID^ARTHRITIS, TYPHOID
;;5007^ARTHRITIS, SYPHILITIC^ARTHRITIS, SYPHILITIC
;;5008^ARTHRITIS, STREPTOCOCCIC^ARTHRITIS, STREPTOCOCCIC
;;5009^ARTHRITIS, OTHER TYPES (SPECIFY)^ARTHRITIS, OTHER TYPES (SPECIFY)
;;5013^OSTEOPOROSIS, WITH JOINT MANIFESTATIONS^OSTEOPOROSIS, WITH JOINT MANIFESTATIONS
;;5203^CLAVICLE OR SCAPULA, IMPAIRMENT OF^CLAVICLE OR SCAPULA, IMPAIRMENT OF
;;5211^ULNA, IMPAIRMENT OF^ULNA, IMPAIRMENT OF
;;5212^RADIUS, IMPAIRMENT OF^RADIUS, IMPAIRMENT OF
;;$EXIT
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDVB450PT 3028 printed Dec 13, 2024@01:57:38 Page 2
DVB450PT ;ALB/BWF POST-INSTALL FOR PATCH DVB*4*50 ;6/2/04
+1 ;;4.0;HINQ;**50**;03/25/92
+2 ;
+3 ;This routine will be run as a post-installation for patch DVB*4*50
+4 ;This routine will update the disability condition file. The
+5 ;updates will apply to the descriptions of 13 disability conditions
+6 ;so VistA matches what is contained in the CFR.
+7 ;
POST ;entry point for post-install, setting up checkpoints
+1 NEW %
+2 SET %=$$NEWCP^XPDUTL("DVBLINE","EN^DVB450PT",1)
+3 QUIT
+4 ;
EN ;begin processing
+1 ;
+2 NEW DVBLINE
+3 ;
+4 DO BMES^XPDUTL(" >> *** Updating DISABILITY CONDITION file (#31)")
+5 DO MES^XPDUTL(" ")
+6 ;
+7 ;get value from checkpoints, previous run
+8 SET DVBLINE=+$$PARCP^XPDUTL("DVBLINE")
+9 ;
DVBNEW ;add new codes or modify name if code is in use
+1 ;
+2 FOR DVBI=DVBLINE:1
SET DVBJ=$PIECE($TEXT(NEWCODE+DVBI),";;",2)
if DVBJ["$EXIT"
QUIT
Begin DoDot:1
+3 SET DVBCODE=+DVBJ
SET DVBNAME=$EXTRACT($PIECE(DVBJ,"^",2),1,45)
SET DVBLINE=DVBI
+4 SET DVBDESC=$EXTRACT($PIECE(DVBJ,"^",3),1,200)
+5 ;
+6 ;add new code
+7 IF '$DATA(^DIC(31,"C",DVBCODE))
Begin DoDot:2
+8 KILL DD,DO
+9 SET DIC="^DIC(31,"
SET DIC(0)="L"
SET DIC("DR")="2////"_DVBCODE_";10////"_DVBDESC
+10 SET X=DVBNAME
SET DLAYGO=31
+11 DO FILE^DICN
+12 DO MES^XPDUTL(DVBCODE_": adding "_DVBCODE_" "_X)
+13 KILL DLAYGO,DIC,X
+14 QUIT
End DoDot:2
GOTO UPDATECH
+15 ;
+16 ;modify name
+17 SET DVBIEN=+$ORDER(^DIC(31,"C",DVBCODE,0))
+18 SET DVBREC=$GET(^DIC(31,DVBIEN,0))
SET DVBOLDSC=$GET(^DIC(31,DVBIEN,1))
IF DVBREC']""
Begin DoDot:2
+19 DO MES^XPDUTL(" >>>> error "_DVBCODE_" in C x-reference and not in file 31")
+20 QUIT
End DoDot:2
GOTO UPDATECH
+21 SET DVBOLDN=$PIECE(DVBREC,"^")
IF DVBOLDN=DVBNAME&(DVBOLDSC=DVBDESC)
GOTO UPDATECH
+22 SET DA=DVBIEN
SET DIE="^DIC(31,"
SET DR=".01////"_DVBNAME_";10////"_DVBDESC
+23 DO ^DIE
+24 KILL DR,DA,DIE
+25 IF DVBOLDN'=DVBNAME
Begin DoDot:2
+26 DO MES^XPDUTL(DVBCODE_": changing name from "_DVBOLDN)
+27 DO MES^XPDUTL(" to "_DVBNAME)
End DoDot:2
+28 IF DVBOLDSC'=DVBDESC
Begin DoDot:2
+29 DO MES^XPDUTL(DVBCODE_": changing description...")
+30 DO MES^XPDUTL(" from: "_DVBOLDSC)
+31 DO MES^XPDUTL(" to: "_DVBDESC)
End DoDot:2
+32 ;
UPDATECH ;update checkpoint
+1 SET %=$$UPCP^XPDUTL("DVBLINE",DVBLINE)
+2 QUIT
End DoDot:1
+3 KILL DVBCODE,DVBI,DVBIEN,DVBJ,DVBNAME,DVBOLDN,DVBREC,DVBDESC,DVBOLDSC
+4 QUIT
+5 ;
NEWCODE ;codes to be added or changed
+1 ;;5001^BONES AND JOINTS, TUBERCULOSIS OF^BONES AND JOINTS, TUBERCULOSIS OF, ACTIVE OR INACTIVE
+2 ;;5002^ARTHRITIS RHEUMATOID (ATROPHIC)^ARTHRITIS RHEUMATOID (ATROPHIC) AS AN ACTIVE PROCESS
+3 ;;5003^ARTHRITIS, DEGENERATIVE^ARTHRITIS, DEGENERATIVE (HYPERTROPHIC OR OSTEOARTHRITIS)
+4 ;;5004^ARTHRITIS, GONORRHEAL^ARTHRITIS, GONORRHEAL
+5 ;;5005^ARTHRITIS, PNEUMOCOCCIC^ARTHRITIS, PNEUMOCOCCIC
+6 ;;5006^ARTHRITIS, TYPHOID^ARTHRITIS, TYPHOID
+7 ;;5007^ARTHRITIS, SYPHILITIC^ARTHRITIS, SYPHILITIC
+8 ;;5008^ARTHRITIS, STREPTOCOCCIC^ARTHRITIS, STREPTOCOCCIC
+9 ;;5009^ARTHRITIS, OTHER TYPES (SPECIFY)^ARTHRITIS, OTHER TYPES (SPECIFY)
+10 ;;5013^OSTEOPOROSIS, WITH JOINT MANIFESTATIONS^OSTEOPOROSIS, WITH JOINT MANIFESTATIONS
+11 ;;5203^CLAVICLE OR SCAPULA, IMPAIRMENT OF^CLAVICLE OR SCAPULA, IMPAIRMENT OF
+12 ;;5211^ULNA, IMPAIRMENT OF^ULNA, IMPAIRMENT OF
+13 ;;5212^RADIUS, IMPAIRMENT OF^RADIUS, IMPAIRMENT OF
+14 ;;$EXIT
+15 QUIT