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

AMH40P7.m

Go to the documentation of this file.
  1. AMH40P7 ; IHS/CMI/LAB - POST INIT BH 4.0 P7
  1. ;;4.0;IHS BEHAVIORAL HEALTH;**7**;JUN 02, 2010;Build 15
  1. ;
  1. ENV ;EP
  1. F X="XPO1","XPZ1","XPZ2","XPI1" S XPDDIQ(X)=0
  1. I +$$VERSION^XPDUTL("XU")<8 D MES^XPDUTL($$CJ^XLFSTR("Version 8.0 of KERNEL is required. Not installed",80)) D SORRY(2) I 1
  1. E D MES^XPDUTL($$CJ^XLFSTR("Requires Kernel Version 8.0....Present.",80))
  1. I +$$VERSION^XPDUTL("DI")<22 D MES^XPDUTL($$CJ^XLFSTR("Version 22.0 of FILEMAN is required. Not installed.",80)) D SORRY(2) I 1
  1. E D MES^XPDUTL($$CJ^XLFSTR("Requires Fileman v22....Present.",80))
  1. I $E($$VERSION^XPDUTL("AMH"),1,3)'="4.0" D MES^XPDUTL($$CJ^XLFSTR("Version 4.0 of AMH is required. Not installed.",80)) D SORRY(2) I 1
  1. E D MES^XPDUTL($$CJ^XLFSTR("Requires AMH v4.0....Present.",80))
  1. I '$$INSTALLD("AMH*4.0*6") D SORRY(2)
  1. I +$$VERSION^XPDUTL("AUM")<17 D MES^XPDUTL($$CJ^XLFSTR("Version 17.0 of AUM (ICD UPDATE) is required. Not installed",80)) D SORRY(2) I 1
  1. E D MES^XPDUTL($$CJ^XLFSTR("Requires AUM Version 17.0....Present.",80))
  1. Q
  1. ;
  1. PRE ;
  1. NEW AMHX,DIK,DA
  1. S AMHX=0 F S AMHX=$O(^AMHPCIN(AMHX)) Q:AMHX'=+AMHX S DA=AMHX,DIK="^AMHPCIN(" D ^DIK K DIK,DA
  1. S AMHX=0 F S AMHX=$O(^AMHTPCAD(AMHX)) Q:AMHX'=+AMHX S DA=AMHX,DIK="^AMHTPCAD(" D ^DIK K DIK,DA
  1. Q
  1. ;
  1. POST ;EP
  1. D INACTPC
  1. D ADDDSMV
  1. Q
  1. ;
  1. ADDDSMV ;add all new dsm v codes
  1. D MES^XPDUTL($$CJ^XLFSTR("Adding codes.",IOM))
  1. S AMHX=0 F S AMHX=$O(^AMHTPCAD(AMHX)) Q:AMHX'=+AMHX D
  1. DSM10 .;ADD DSM5 ICD10 CODES
  1. .S AMHCODE=$P(^AMHTPCAD(AMHX,0),U,1)
  1. .Q:AMHCODE=""
  1. .S AMHNARR=$P(^AMHTPCAD(AMHX,0),U,2)
  1. .S AMHPC=$P(^AMHTPCAD(AMHX,0),U,3)
  1. .S AMHPCC=$O(^AMHPROBC("B",AMHPC,0))
  1. .I 'AMHPCC D MES^XPDUTL("PROBLEM CODE MISSING: "_AMHPC_" CODE "_AMHCODE_" NOT UPLOADED") Q
  1. .S AMHICD=$P(^AMHTPCAD(AMHX,0),U,17)
  1. .S AMHEHR=$P(^AMHTPCAD(AMHX,0),U,15)
  1. .S AMHNOBH=$P(^AMHTPCAD(AMHX,0),U,18)
  1. .S AMHCS=$P(^AMHTPCAD(AMHX,0),U,10)
  1. .;FIND EXISTING AND OVERLAY
  1. .K DIE,DA,DR
  1. .S DA=""
  1. .S AMHY=0 F S AMHY=$O(^AMHPROB("B",AMHCODE,AMHY)) Q:AMHY'=+AMHY!(DA) D
  1. ..Q:$P(^AMHPROB(AMHY,0),U,10)'=5 ;ONLY DSMV
  1. ..Q:$$UP^XLFSTR($P(^AMHPROB(AMHY,0),U,2))'=$$UP^XLFSTR(AMHNARR)
  1. ..S DA=AMHY
  1. .I DA D EDITC Q
  1. .;ADD THEN EDIT
  1. .K DIC,DLAYGO,DIADD,DD,D0
  1. .S DITC=1
  1. .S X=AMHCODE,DIC="^AMHPROB(",DLAYGO=9002012.2,DIADD=1,DIC(0)="EMQ"
  1. .S DIC("DR")=".02///"_AMHNARR_";.03////"_AMHPCC_";.17///"_AMHICD_";.1///"_AMHCS_";.15///"_AMHEHR_";.18///"_AMHNOBH
  1. .D FILE^DICN
  1. .I Y=-1 W !,"ERROR ON ",AMHX," ",AMHCODE," ",DIC("DR") K DA,DIC,DIADD,DLAYGO,DR,DD,D0,DO,DITC Q
  1. .K DA,DIC,DIADD,DLAYGO,DR,DD,D0,DO,DITC
  1. .D MES^XPDUTL("."_$P(^AMHPROB(+Y,0),U,1))
  1. .Q
  1. Q
  1. EDITC ;
  1. S DIE="^AMHPROB(",DR=".02///"_AMHNARR_";.03////"_AMHPCC_";.17///"_AMHICD_";.1///"_AMHCS_";.15///"_AMHEHR_";.18///"_AMHNOBH
  1. D ^DIE
  1. I $D(Y) D MES^XPDUTL("DSM CODE FAILED UPDATING: "_AMHCODE) K DIE,DA,DR Q
  1. D MES^XPDUTL("."_$P(^AMHPROB(DA,0),U,1))
  1. K DIE,DA,DR
  1. Q
  1. INACTPC ;
  1. D MES^XPDUTL($$CJ^XLFSTR("Inactivating codes.",IOM))
  1. S AMHX=0 F S AMHX=$O(^AMHPCIN(AMHX)) Q:AMHX'=+AMHX D
  1. .Q:$P(^AMHPCIN(AMHX,0),U,3)'=1
  1. .S AMHC=$P(^AMHPCIN(AMHX,0),U,1)
  1. .;loop through "B" on AMHPROB and flag all that are not already flagged
  1. .S AMHY=0 F S AMHY=$O(^AMHPROB("B",AMHC,AMHY)) Q:AMHY'=+AMHY D
  1. ..I '$D(^AMHPROB(AMHY,0)) Q
  1. ..;I $P(^AMHPROB(AMHY,0),U,13),$P(^AMHPROB(AMHY,0),U,14)]"" Q ;already flagged
  1. ..S DA=AMHY,DIE="^AMHPROB(",DR=".13///1;.14////"_$P(^AMHPCIN(AMHX,0),U,5) D ^DIE K DA,DIE,DR
  1. ..D MES^XPDUTL("."_$P(^AMHPROB(AMHY,0),U,1))
  1. ..Q
  1. .Q
  1. Q
  1. ;
  1. INSTALLD(AMHSTAL) ;EP - Determine if patch AMHSTAL was installed, where
  1. ; APCLSTAL is the name of the INSTALL. E.g "AG*6.0*11".
  1. ;
  1. NEW AMHY,DIC,X,Y
  1. S X=$P(AMHSTAL,"*",1)
  1. S DIC="^DIC(9.4,",DIC(0)="FM",D="C"
  1. D IX^DIC
  1. I Y<1 D IMES Q 0
  1. S DIC=DIC_+Y_",22,",X=$P(AMHSTAL,"*",2)
  1. D ^DIC
  1. I Y<1 D IMES Q 0
  1. S DIC=DIC_+Y_",""PAH"",",X=$P(AMHSTAL,"*",3)
  1. D ^DIC
  1. S AMHY=Y
  1. D IMES
  1. Q $S(AMHY<1:0,1:1)
  1. IMES ;
  1. D MES^XPDUTL($$CJ^XLFSTR("Patch """_AMHSTAL_""" is"_$S(Y<1:" *NOT*",1:"")_" Present.",IOM))
  1. Q
  1. SORRY(X) ;
  1. KILL DIFQ
  1. I X=3 S XPDQUIT=2 Q
  1. S XPDQUIT=X
  1. W *7,!,$$CJ^XLFSTR("Sorry....FIX IT!",IOM)
  1. Q