XUPCH117 ;ISF/RWF - PATCH XU*8*117 ;06/02/99 13:35 [ 04/02/2003 8:29 AM ]
;;8.0;KERNEL;**1007**;APR 1, 2003
;;8.0;KERNEL;**117**;Apr 10, 1999
Q
POST ;Update the package file with the data
N DATA,IX
F IX=1:1 S DATA=$T(DATA+IX) Q:DATA="" S DATA=$P(DATA,";;",2) D UPDATE
D DEL ;Remove old fields.
D FMDC ;Add package
Q
UPDATE ;Do the work
N D,J,L,NIEN,PIEN
S NIEN=$O(^DIC(9.4,"B",$P(DATA,U),0)),PIEN=$O(^DIC(9.4,"C",$P(DATA,U,2),0))
I +NIEN,+PIEN,NIEN'=PIEN D
. D BMES^XPDUTL("For package "_$P(DATA,U)_" with Prefix "_$P(DATA,U,2))
. D BMES^XPDUTL("NAME ("_NIEN_") and PREFIX ("_PIEN_") don't point to the same record.")
. Q
I 'NIEN,'PIEN D NEW
S:'PIEN PIEN=NIEN S:'NIEN NIEN=PIEN S J=$S(NIEN<PIEN:NIEN,1:PIEN)
D WORK(J)
Q
NEW ;
N FDA,XIEN
S FDA(9.4,"+1,",.01)=$P(DATA,U),FDA(9.4,"+1,",1)=$P(DATA,U,2)
D UPDATE^DIE("","FDA","XIEN") S (NIEN,PIEN)=XIEN(1)
Q
WORK(DA) ;
N I,K,FDA,IEN
S K=$P($G(^DIC(9.4,DA,0)),U) I K'=$P(DATA,U) S FDA(9.4,DA_",",.01)=$P(DATA,U)
F K=3:1 S I=$P(DATA,U,K) Q:I="" S FDA(9.4014,"?+"_K_","_DA_",",.01)=I
I $D(FDA) D UPDATE^DIE("","FDA","IEN")
Q
FMDC ;Setup FMDC version 1.0
N FDA,IEN,DA
S DA=$O(^DIC(9.4,"C","FMDC",0)) Q:'DA
S FDA(9.4,DA_",",13)="1.0",FDA(9.49,"?+2,"_DA_",",.01)="1.0",IEN(2)=1
D UPDATE^DIE("","FDA","IEN") ;I $D(^TMP("DIERR",$J)) W !,"ERROR"
Q
DEL ;Delete DD fields
N IX,DATA,DA,FILE,FLD,XFDA,X,XIEN
;DD(9.4 fields to remove
;F I=1:1 S X=$P(DATA,";",I) Q:X="" W !,X,?5,$P($G(^DD(9.4,X,0)),U)
S FILE=9.4,DATA="4;5;11.1;11.4;11.5;11.6;11.7;12;200.1;200.2;1920;1933",DA=0,XDR=""
F I=1:1 S X=$P(DATA,";",I) Q:X="" I '(+$P($G(^DD(9.4,X,0),"^1"),U,2)) S XDR=XDR_X_"///@;"
F S DA=$O(^DIC(FILE,DA)) Q:DA'>0 D
. S DIE="^DIC(9.4,",DR=XDR D ^DIE
. Q
D DELLN
;DD(9.4,DA(1),22, to remove
S FILE=9.49,DATA="51;61;62;63"
D DELLN
Q
DELLN ;
N IJ,DIK,DA,FLD
F IJ=1:1 S FLD=$P(DATA,";",IJ) Q:FLD="" D
. K DA,DIK
. S DO=$P($G(^DD(FILE,FLD,0)),U,2) Q:DO=""
. I +DO D SUBFLD(FILE,+DO) Q
. S DA=FLD,DIK="^DD("_FILE_",",DA(1)=FILE D ^DIK
. Q
Q
SUBFLD(FL,FD) ;
N DIU
S DIU=FD,DIU(0)="DS" D EN^DIU2
Q
BLD ;BUILD DATA
D HOME^%ZIS
N PK,DA,IX
S PK=0,U="^",IO="SDP.DAT"
O IO:NEWVERSION
F S PK=$O(^RWF("PATCH",PK)) Q:PK'>0 S X=$G(^(PK,0)) D
. S X=$C(9)_";;"_$P(X_"^^","^",1,2),Y=""
. F IX=0:0 S IX=$O(^RWF("PATCH",PK,14,IX)) Q:IX'>0 S Y=Y_"^"_$P(^(IX,0),U)
. S:$L(Y) X=X_Y U IO(0) W !,X
. U IO W X,!
. Q
C IO
Q
DATA ;
;;ACCOUNTS RECEIVABLE^PRCA^PRY^RC
;;ADVERSE REACTION TRACKING^GMRA^GMA
;;ASISTS^OOPS
;;AUTHORIZATION/SUBSCRIPTION^USR
;;AUTO REPLENISHMENT/WARD STOCK^PSGW
;;AUTOMATED INFO COLLECTION SYS^IBD
;;AUTOMATED LAB INSTRUMENTS^LA
;;AUTOMATED MED INFO EXCHANGE^DVBA^DVBE^DVBX^DVBY
;;CAPACITY MANAGEMENT - RUM^KMPR
;;CLINICAL INFO RESOURCE NETWORK^RG^MRF
;;CLINICAL MONITORING SYSTEM^QAM
;;CMOP^PSX
;;CONSULT/REQUEST TRACKING^GMRC^GMRS^GMRT
;;CONTROLLED SUBSTANCES^PSD
;;CPT/HCPCS CODES^ICPT^DGYA
;;DENTAL^DENT
;;DIETETICS^FH
;;DISCHARGE SUMMARY^GMRD^GMRE
;;DRG GROUPER^ICD^IC
;;DRUG ACCOUNTABILITY^PSA
;;DSS EXTRACTS^ECX
;;EEO COMPLAINT TRACKING^EEO
;;ENGINEERING^EN
;;EQUIPMENT/TURN-IN REQUIEST^PRCN
;;EVENT CAPTURE^EC
;;FEE BASIS^FB
;;FILEMAN DELPHI COMPONENTS^FMDC
;;GEN. MED. REC. - GENERATOR^GMRG
;;GEN. MED. REC. - I/O^GMRY
;;GEN. MED. REC. - VITALS^GMRV
;;GENERIC CODE SHEET^GEC
;;HEALTH LEVEL SEVEN^HL
;;HEALTH SUMMARY^GMTS
;;HINQ^DVB^DVBC^DVBU^DVBV^DVBW^DVY
;;HOSPITAL BASED HOME CARE^HBH
;;ICR - IMMUNOLOGY CASE REGISTRY^IMR
;;IFCAP^PRC^PRX
;;IMAGING^MAG^ZMAG
;;INCIDENT REPORTING^QAN
;;INCOME VERIFICATION MATCH^IVM
;;INPATIENT MEDICATIONS^PSJ^PSIV^PSG
;;INTEGRATED BILLING^IB^PRQ
;;INTEGRATED PATIENT FUNDS^PRPF
;;INTERIM MANAGEMENT SUPPORT^ECT
;;KERNEL^XU^USC^XLF^XPD^XNOA^XQ^ZI^ZOSF^ZOSV^ZT
;;LAB SERVICE^LR^LS
;;LEXICON UTILITY^LEX^GMPT
;;LIBRARY^LBR^LBRS
;;LIST MANAGER^VALM
;;MAILMAN^XM
;;MCCR NATIONAL DATABASE - FIELD^PRQS
;;MEDICINE^MC
;;MENTAL HEALTH^YS^RUCL
;;MINIMAL PATIENT DATASET^VAM
;;Missing Patient Register^MPR
;;NATIONAL DRUG FILE^PSN
;;NATIONAL LABORATORY TEST^NLT
;;NETWORK HEALTH EXCHANGE^AFJX
;;NURSING SERVICE^NUR
;;OCCURRENCE SCREEN^QAO
;;ONCOLOGY^ONC
;;ORDER ENTRY/RESULTS REPORTING^OR^OCX
;;OUTPATIENT PHARMACY^PSO^APSP
;;PAID^PRS
;;PATIENT DATA EXCHANGE^VAQ
;;PATIENT FEEDBACK^A4A8^QAF
;;PATIENT REPRESENTATIVE^QAC
;;PCE PATIENT CARE ENCOUNTER^PX^EFDP^VSIT
;;PHARMACY BENEFITS MANAGEMENT^PSU
;;PHARMACY DATA MANAGEMENT^PSS
;;PHARMACY PRESCRIPTION PRACTICE^PPP
;;POLICE & SECURITY^ES
;;PROBLEM LIST^GMPL
;;PROGRESS NOTES^GMRP^GMRQ^GMRR
;;PROSTHETICS^RMPR^RMPO^RMPS
;;QUALITY ASSURANCE INTEGRATION^QAQ
;;QUALITY IMPROVEMENT CHECKLIST^QIP
;;QUASAR^ACKQ
;;RADIOLOGY/NUCLEAR MEDICINE^RA
;;RECORD TRACKING^RT
;;REGISTRATION^DG^DGJ^DGQE^DPT^VA^VIC
;;REMOTE ORDER/ENTRY SYSTEM^RMPF^RMPJ
;;RPC BROKER^XWB
;;SAGG PROJECT^KMPS^A1B5
;;SCHEDULING^SD^SC
;;SOCIAL WORK^SOW^SWBH^SWFG
;;SPINAL CORD DYSFUNCTION^SPN
;;SURGERY^SR
;;SURVEY GENERATOR^QAP
;;TEXT INTEGRATION UTILITIES^TIU
;;TOOLKIT^XT^XD^XIN^XPAR^XQAB^XUC^XUR^ZIN^ZTED
;;UTILIZATION MANAGEMENT ROLLUP^IBQ
;;VA FILEMAN^DI^DD^DM
;;VISUAL IMPAIRMENT SERVICE TEAM^ANRV
;;VOLUNTARY TIMEKEEPING^ABSV^ABS2
;;WOMEN'S HEALTH^WV
XUPCH117 ;ISF/RWF - PATCH XU*8*117 ;06/02/99 13:35 [ 04/02/2003 8:29 AM ]
+1 ;;8.0;KERNEL;**1007**;APR 1, 2003
+2 ;;8.0;KERNEL;**117**;Apr 10, 1999
+3 QUIT
POST ;Update the package file with the data
+1 NEW DATA,IX
+2 FOR IX=1:1
SET DATA=$TEXT(DATA+IX)
IF DATA=""
QUIT
SET DATA=$PIECE(DATA,";;",2)
DO UPDATE
+3 ;Remove old fields.
DO DEL
+4 ;Add package
DO FMDC
+5 QUIT
UPDATE ;Do the work
+1 NEW D,J,L,NIEN,PIEN
+2 SET NIEN=$ORDER(^DIC(9.4,"B",$PIECE(DATA,U),0))
SET PIEN=$ORDER(^DIC(9.4,"C",$PIECE(DATA,U,2),0))
+3 IF +NIEN
IF +PIEN
IF NIEN'=PIEN
Begin DoDot:1
+4 DO BMES^XPDUTL("For package "_$PIECE(DATA,U)_" with Prefix "_$PIECE(DATA,U,2))
+5 DO BMES^XPDUTL("NAME ("_NIEN_") and PREFIX ("_PIEN_") don't point to the same record.")
+6 QUIT
End DoDot:1
+7 IF 'NIEN
IF 'PIEN
DO NEW
+8 IF 'PIEN
SET PIEN=NIEN
IF 'NIEN
SET NIEN=PIEN
SET J=$SELECT(NIEN<PIEN:NIEN,1:PIEN)
+9 DO WORK(J)
+10 QUIT
NEW ;
+1 NEW FDA,XIEN
+2 SET FDA(9.4,"+1,",.01)=$PIECE(DATA,U)
SET FDA(9.4,"+1,",1)=$PIECE(DATA,U,2)
+3 DO UPDATE^DIE("","FDA","XIEN")
SET (NIEN,PIEN)=XIEN(1)
+4 QUIT
WORK(DA) ;
+1 NEW I,K,FDA,IEN
+2 SET K=$PIECE($GET(^DIC(9.4,DA,0)),U)
IF K'=$PIECE(DATA,U)
SET FDA(9.4,DA_",",.01)=$PIECE(DATA,U)
+3 FOR K=3:1
SET I=$PIECE(DATA,U,K)
IF I=""
QUIT
SET FDA(9.4014,"?+"_K_","_DA_",",.01)=I
+4 IF $DATA(FDA)
DO UPDATE^DIE("","FDA","IEN")
+5 QUIT
FMDC ;Setup FMDC version 1.0
+1 NEW FDA,IEN,DA
+2 SET DA=$ORDER(^DIC(9.4,"C","FMDC",0))
IF 'DA
QUIT
+3 SET FDA(9.4,DA_",",13)="1.0"
SET FDA(9.49,"?+2,"_DA_",",.01)="1.0"
SET IEN(2)=1
+4 ;I $D(^TMP("DIERR",$J)) W !,"ERROR"
DO UPDATE^DIE("","FDA","IEN")
+5 QUIT
DEL ;Delete DD fields
+1 NEW IX,DATA,DA,FILE,FLD,XFDA,X,XIEN
+2 ;DD(9.4 fields to remove
+3 ;F I=1:1 S X=$P(DATA,";",I) Q:X="" W !,X,?5,$P($G(^DD(9.4,X,0)),U)
+4 SET FILE=9.4
SET DATA="4;5;11.1;11.4;11.5;11.6;11.7;12;200.1;200.2;1920;1933"
SET DA=0
SET XDR=""
+5 FOR I=1:1
SET X=$PIECE(DATA,";",I)
IF X=""
QUIT
IF '(+$PIECE($GET(^DD(9.4,X,0),"^1"),U,2))
SET XDR=XDR_X_"///@;"
+6 FOR
SET DA=$ORDER(^DIC(FILE,DA))
IF DA'>0
QUIT
Begin DoDot:1
+7 SET DIE="^DIC(9.4,"
SET DR=XDR
DO ^DIE
+8 QUIT
End DoDot:1
+9 DO DELLN
+10 ;DD(9.4,DA(1),22, to remove
+11 SET FILE=9.49
SET DATA="51;61;62;63"
+12 DO DELLN
+13 QUIT
DELLN ;
+1 NEW IJ,DIK,DA,FLD
+2 FOR IJ=1:1
SET FLD=$PIECE(DATA,";",IJ)
IF FLD=""
QUIT
Begin DoDot:1
+3 KILL DA,DIK
+4 SET DO=$PIECE($GET(^DD(FILE,FLD,0)),U,2)
IF DO=""
QUIT
+5 IF +DO
DO SUBFLD(FILE,+DO)
QUIT
+6 SET DA=FLD
SET DIK="^DD("_FILE_","
SET DA(1)=FILE
DO ^DIK
+7 QUIT
End DoDot:1
+8 QUIT
SUBFLD(FL,FD) ;
+1 NEW DIU
+2 SET DIU=FD
SET DIU(0)="DS"
DO EN^DIU2
+3 QUIT
BLD ;BUILD DATA
+1 DO HOME^%ZIS
+2 NEW PK,DA,IX
+3 SET PK=0
SET U="^"
SET IO="SDP.DAT"
+4 OPEN IO:NEWVERSION
+5 FOR
SET PK=$ORDER(^RWF("PATCH",PK))
IF PK'>0
QUIT
SET X=$GET(^(PK,0))
Begin DoDot:1
+6 SET X=$CHAR(9)_";;"_$PIECE(X_"^^","^",1,2)
SET Y=""
+7 FOR IX=0:0
SET IX=$ORDER(^RWF("PATCH",PK,14,IX))
IF IX'>0
QUIT
SET Y=Y_"^"_$PIECE(^(IX,0),U)
+8 IF $LENGTH(Y)
SET X=X_Y
USE IO(0)
WRITE !,X
+9 USE IO
WRITE X,!
+10 QUIT
End DoDot:1
+11 CLOSE IO
+12 QUIT
DATA ;
+1 ;;ACCOUNTS RECEIVABLE^PRCA^PRY^RC
+2 ;;ADVERSE REACTION TRACKING^GMRA^GMA
+3 ;;ASISTS^OOPS
+4 ;;AUTHORIZATION/SUBSCRIPTION^USR
+5 ;;AUTO REPLENISHMENT/WARD STOCK^PSGW
+6 ;;AUTOMATED INFO COLLECTION SYS^IBD
+7 ;;AUTOMATED LAB INSTRUMENTS^LA
+8 ;;AUTOMATED MED INFO EXCHANGE^DVBA^DVBE^DVBX^DVBY
+9 ;;CAPACITY MANAGEMENT - RUM^KMPR
+10 ;;CLINICAL INFO RESOURCE NETWORK^RG^MRF
+11 ;;CLINICAL MONITORING SYSTEM^QAM
+12 ;;CMOP^PSX
+13 ;;CONSULT/REQUEST TRACKING^GMRC^GMRS^GMRT
+14 ;;CONTROLLED SUBSTANCES^PSD
+15 ;;CPT/HCPCS CODES^ICPT^DGYA
+16 ;;DENTAL^DENT
+17 ;;DIETETICS^FH
+18 ;;DISCHARGE SUMMARY^GMRD^GMRE
+19 ;;DRG GROUPER^ICD^IC
+20 ;;DRUG ACCOUNTABILITY^PSA
+21 ;;DSS EXTRACTS^ECX
+22 ;;EEO COMPLAINT TRACKING^EEO
+23 ;;ENGINEERING^EN
+24 ;;EQUIPMENT/TURN-IN REQUIEST^PRCN
+25 ;;EVENT CAPTURE^EC
+26 ;;FEE BASIS^FB
+27 ;;FILEMAN DELPHI COMPONENTS^FMDC
+28 ;;GEN. MED. REC. - GENERATOR^GMRG
+29 ;;GEN. MED. REC. - I/O^GMRY
+30 ;;GEN. MED. REC. - VITALS^GMRV
+31 ;;GENERIC CODE SHEET^GEC
+32 ;;HEALTH LEVEL SEVEN^HL
+33 ;;HEALTH SUMMARY^GMTS
+34 ;;HINQ^DVB^DVBC^DVBU^DVBV^DVBW^DVY
+35 ;;HOSPITAL BASED HOME CARE^HBH
+36 ;;ICR - IMMUNOLOGY CASE REGISTRY^IMR
+37 ;;IFCAP^PRC^PRX
+38 ;;IMAGING^MAG^ZMAG
+39 ;;INCIDENT REPORTING^QAN
+40 ;;INCOME VERIFICATION MATCH^IVM
+41 ;;INPATIENT MEDICATIONS^PSJ^PSIV^PSG
+42 ;;INTEGRATED BILLING^IB^PRQ
+43 ;;INTEGRATED PATIENT FUNDS^PRPF
+44 ;;INTERIM MANAGEMENT SUPPORT^ECT
+45 ;;KERNEL^XU^USC^XLF^XPD^XNOA^XQ^ZI^ZOSF^ZOSV^ZT
+46 ;;LAB SERVICE^LR^LS
+47 ;;LEXICON UTILITY^LEX^GMPT
+48 ;;LIBRARY^LBR^LBRS
+49 ;;LIST MANAGER^VALM
+50 ;;MAILMAN^XM
+51 ;;MCCR NATIONAL DATABASE - FIELD^PRQS
+52 ;;MEDICINE^MC
+53 ;;MENTAL HEALTH^YS^RUCL
+54 ;;MINIMAL PATIENT DATASET^VAM
+55 ;;Missing Patient Register^MPR
+56 ;;NATIONAL DRUG FILE^PSN
+57 ;;NATIONAL LABORATORY TEST^NLT
+58 ;;NETWORK HEALTH EXCHANGE^AFJX
+59 ;;NURSING SERVICE^NUR
+60 ;;OCCURRENCE SCREEN^QAO
+61 ;;ONCOLOGY^ONC
+62 ;;ORDER ENTRY/RESULTS REPORTING^OR^OCX
+63 ;;OUTPATIENT PHARMACY^PSO^APSP
+64 ;;PAID^PRS
+65 ;;PATIENT DATA EXCHANGE^VAQ
+66 ;;PATIENT FEEDBACK^A4A8^QAF
+67 ;;PATIENT REPRESENTATIVE^QAC
+68 ;;PCE PATIENT CARE ENCOUNTER^PX^EFDP^VSIT
+69 ;;PHARMACY BENEFITS MANAGEMENT^PSU
+70 ;;PHARMACY DATA MANAGEMENT^PSS
+71 ;;PHARMACY PRESCRIPTION PRACTICE^PPP
+72 ;;POLICE & SECURITY^ES
+73 ;;PROBLEM LIST^GMPL
+74 ;;PROGRESS NOTES^GMRP^GMRQ^GMRR
+75 ;;PROSTHETICS^RMPR^RMPO^RMPS
+76 ;;QUALITY ASSURANCE INTEGRATION^QAQ
+77 ;;QUALITY IMPROVEMENT CHECKLIST^QIP
+78 ;;QUASAR^ACKQ
+79 ;;RADIOLOGY/NUCLEAR MEDICINE^RA
+80 ;;RECORD TRACKING^RT
+81 ;;REGISTRATION^DG^DGJ^DGQE^DPT^VA^VIC
+82 ;;REMOTE ORDER/ENTRY SYSTEM^RMPF^RMPJ
+83 ;;RPC BROKER^XWB
+84 ;;SAGG PROJECT^KMPS^A1B5
+85 ;;SCHEDULING^SD^SC
+86 ;;SOCIAL WORK^SOW^SWBH^SWFG
+87 ;;SPINAL CORD DYSFUNCTION^SPN
+88 ;;SURGERY^SR
+89 ;;SURVEY GENERATOR^QAP
+90 ;;TEXT INTEGRATION UTILITIES^TIU
+91 ;;TOOLKIT^XT^XD^XIN^XPAR^XQAB^XUC^XUR^ZIN^ZTED
+92 ;;UTILIZATION MANAGEMENT ROLLUP^IBQ
+93 ;;VA FILEMAN^DI^DD^DM
+94 ;;VISUAL IMPAIRMENT SERVICE TEAM^ANRV
+95 ;;VOLUNTARY TIMEKEEPING^ABSV^ABS2
+96 ;;WOMEN'S HEALTH^WV