Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: BCSVP2

BCSVP2.m

Go to the documentation of this file.
  1. BCSVP2 ;IHS/MSC/BWF - CSV Patch 1 ;3-Mar-2010 19:05;BF
  1. ;;1.0;BCSV;**2**;APR 23,2010
  1. ;=================================================================
  1. ; BCSV patch 2 post install
  1. PRE ;
  1. I '$D(^XPD(9.6,"B","BCSV*1.0*1")) S XPDABORT=1
  1. I $G(XPDABORT) D BMES^XPDUTL("BCSV*1.0*1 must be installed to continue!") Q
  1. Q
  1. POST ;
  1. N ICDCODE,SIEN,AGELOW,AGEHIGH,ICD90,OALOW,OAHIGH,ICDCODE
  1. S REPONLY=$G(REPONLY)
  1. I $G(REPONLY) D DISPHDR
  1. ; grab old age ranges and put them back into the ICD file.
  1. S X=0 F S X=$O(^ICD9(X)) Q:'X D
  1. .S ICDCODE=$P(^ICD9(X,0),U,1)_" "
  1. .; get source ien
  1. .S SIEN=$O(^XCSVICD9("BA",ICDCODE,0)) Q:'SIEN
  1. .S IHSIEN=$O(^ICD9("BA",ICDCODE,0)) Q:'IHSIEN
  1. .S AGELOW=$$AGELOW(SIEN,IHSIEN),AGEHIGH=$$AGEHIGH(SIEN,IHSIEN)
  1. .S ICD90=$G(^ICD9(IHSIEN,0)),OALOW=$P(ICD90,U,14),OAHIGH=$P(ICD90,U,15)
  1. .I OALOW="",AGELOW="",OAHIGH="",AGEHIGH="" Q
  1. .I OALOW=AGELOW,OAHIGH=AGEHIGH Q
  1. .I REPONLY D DISP(ICDCODE,AGELOW,AGEHIGH,OALOW,OAHIGH) Q
  1. .S FDA(80,X_",",14)=AGELOW
  1. .S FDA(80,X_",",15)=AGEHIGH
  1. .D FILE^DIE(,"FDA","ERR")
  1. D FIXICM
  1. D ICDUPD
  1. Q
  1. FIXICM ; kill off entries that were added in the wrong place
  1. N QUIT,LINE,KIEN,NIEN
  1. S QUIT=0
  1. F I=1:1 D Q:QUIT
  1. .S LINE=$P($T(DAT+I),";;",2) I LINE=" Q"!(LINE']"") S QUIT=1 Q
  1. .K KIEN,NIEN
  1. .S KIEN=$P(LINE,":"),NIEN(1)=$P(LINE,":",2)
  1. .S DIK="^ICM(",DA=KIEN D ^DIK
  1. .; if an entry already exists here, do not file it again
  1. .I '$D(^ICM(NIEN(1))) D
  1. ..K FDA S FDA(80.3,"+1,",.01)=$P($G(^XCSV("ICM","DATA",NIEN(1),0)),U,1)
  1. ..D UPDATE^DIE(,"FDA","NIEN","BCSVERR") K FDA
  1. .; add data back into entry
  1. .M ^ICM(NIEN(1))=^XCSV("ICM","DATA",NIEN(1))
  1. .; reindex
  1. S DIK="^ICM(" D IXALL^DIK
  1. Q
  1. ;
  1. ICDUPD ;
  1. N DRG,BCSVDT,BCSVSIEN,BCSVDESC
  1. S DRG=0 F S DRG=$O(^ICD(DRG)) Q:'DRG D
  1. .S BCSVDT=$O(^ICD(DRG,68,"B",9999999),-1) Q:'BCSVDT
  1. .S BCSVSIEN=$O(^ICD(DRG,68,"B",BCSVDT,0)) Q:'BCSVSIEN
  1. .S BCSVDESC=$$GET1^DIQ(80.2681,"1,"_BCSVSIEN_","_DRG_",",.01,"E")
  1. .S FDA(80.21,"1,"_DRG_",",.01)=BCSVDESC
  1. .D FILE^DIE(,"FDA") K FDA
  1. Q
  1. AGELOW(IEN,IHSIEN) ;
  1. N ALOW
  1. Q:'IEN
  1. ; first check to see if there is a value in piece 14
  1. S ALOW=$P(^XCSVICD9(IEN,0),U,14)
  1. I 'ALOW S ALOW=$P($G(^ICD9(IHSIEN,9999999)),U)
  1. Q ALOW
  1. AGEHIGH(IEN,IHSIEN) ;
  1. N AHIGH
  1. Q:'IEN
  1. S AHIGH=$P(^XCSVICD9(IEN,0),U,15)
  1. I 'AHIGH S AHIGH=$P($G(^ICD9(IHSIEN,9999999)),U,2)
  1. Q AHIGH
  1. ;
  1. DISP(CODE,NALOW,NAHIGH,OALOW,OAHIGH) ;
  1. W !,CODE,?20,OALOW,?35,NALOW,?50,OAHIGH,?65,NAHIGH
  1. Q
  1. DISPHDR ;
  1. W @IOF
  1. W !,"ICD CODE",?20,"CSV AGE LOW",?35,"IHS AGE LOW",?50,"CSV AGE HIGH",?65,"IHS AGE HIGH"
  1. W !,"--------",?20,"-----------",?35,"-----------",?50,"------------",?65,"------------"
  1. Q
  1. DAT ;
  1. ;;100:26
  1. ;;101:27
  1. ;;102:28
  1. ;;103:98
  1. Q