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

BPXRM205.m

Go to the documentation of this file.
  1. BPXRM205 ; IHS/MSC/MGH - Version 2.0 Patch 1005 post routine. ;17-Jun-2015 06:33;du
  1. ;;2.0;CLINICAL REMINDERS;**1005**;Feb 04, 2005;Build 23
  1. ;
  1. ENV ;EP environment check
  1. N IN,INSTDA,STAT
  1. ;Check for the installation of Reminders 2.0
  1. S IN="CLINICAL REMINDERS 2.0",INSTDA=""
  1. I '$D(^XPD(9.7,"B",IN)) D Q
  1. .W !,"You must first install CLINICAL REMINDERS 2.0 before this patch" S XPDQUIT=2
  1. S INSTDA=$O(^XPD(9.7,"B",IN,INSTDA),-1)
  1. S STAT=+$P($G(^XPD(9.7,INSTDA,0)),U,9)
  1. I STAT'=3 D Q
  1. .W !,"CLINICAL REMINDERS 2.0 must be completely installed before installing this patch." S XPDQUIT=2
  1. S (XPDDIQ("XPZ1"),XPDDIQ("XPZ2"))=0
  1. ;
  1. S IN="IHS CLINICAL REPORTING 14.0",INSTDA=""
  1. I '$D(^XPD(9.7,"B",IN)) D Q
  1. .W !,"You must first install IHS CLINICAL REPORTING 14.0 before this patch" S XPDQUIT=2
  1. S INSTDA=$O(^XPD(9.7,"B",IN,INSTDA),-1)
  1. S STAT=+$P($G(^XPD(9.7,INSTDA,0)),U,9)
  1. I STAT'=3 D Q
  1. .W !,"IHS CLINICAL REPORTING 14.0 must be completely installed before installing this patch." S XPDQUIT=2
  1. S (XPDDIQ("XPZ1"),XPDDIQ("XPZ2"))=0
  1. S IN="AICD 4.0",INSTDA=""
  1. I '$D(^XPD(9.7,"B",IN)) D Q
  1. .W !,"You must first install AICD 4.0 before this patch" S XPDQUIT=2
  1. S INSTDA=$O(^XPD(9.7,"B",IN,INSTDA),-1)
  1. S STAT=+$P($G(^XPD(9.7,INSTDA,0)),U,9)
  1. I STAT'=3 D Q
  1. .W !,"AICD 4.0 must be completely installed before installing this patch." S XPDQUIT=2
  1. S (XPDDIQ("XPZ1"),XPDDIQ("XPZ2"))=0
  1. ;Check for the installation of other patches
  1. S PATCH="PXRM*2.0*1004"
  1. I '$$PATCH(PATCH) D Q
  1. . W !,"You must first install "_PATCH_"." S XPDQUIT=2
  1. S PATCH="GMPL*2.0*1004"
  1. I '$$PATCH(PATCH) D Q
  1. . W !,"You must first install "_PATCH_"." S XPDQUIT=2
  1. S PATCH="XU*8.0*539"
  1. I '$$PATCH(PATCH) D Q
  1. . W !,"You must first install "_PATCH_"." S XPDQUIT=2
  1. Q
  1. PATCH(X) ;return 1 if patch X was installed, X=aaaa*nn.nn*nnnn
  1. ;copy of code from XPDUTL but modified to handle 4 digit IHS patch numb
  1. Q:X'?1.4UN1"*"1.2N1"."1.2N.1(1"V",1"T").2N1"*"1.4N 0
  1. NEW NUM,I,J
  1. S I=$O(^DIC(9.4,"C",$P(X,"*"),0)) Q:'I 0
  1. S J=$O(^DIC(9.4,I,22,"B",$P(X,"*",2),0)),X=$P(X,"*",3) Q:'J 0
  1. ;check if patch is just a number
  1. Q:$O(^DIC(9.4,I,22,J,"PAH","B",X,0)) 1
  1. S NUM=$O(^DIC(9.4,I,22,J,"PAH","B",X_" SEQ"))
  1. Q (X=+NUM)
  1. ;===============================================================
  1. PRE ;EP pre-init
  1. ;Delete exchange file entries put in by patches
  1. D DELEI
  1. ;delete the DDs for files with Variable pointers
  1. D DELDD
  1. Q
  1. ;===============================================================
  1. POST ;Post-install
  1. N DIK
  1. K ^XTMP("PXRM_DISEV")
  1. D CVMEA
  1. ;Rebuild X-ref
  1. S DIK="PXD(811.2,"
  1. S DIK(1)="4^APDS"
  1. D ENALL2^DIK
  1. S DIK="PXD(811.2,"
  1. S DIK(1)="4^APDS"
  1. D ENALL^DIK
  1. D SOURCE
  1. Q
  1. ;
  1. ARRAY(ARRAY) ;List of exchange entries used by delete and install
  1. S ARRAY(1,1)="DEPRESSION/PTSD REMINDER TERM UPDATES - PATCH 17"
  1. S ARRAY(2,1)="ECOE REMINDER DIALOGS"
  1. S ARRAY(3,1)="NATIONAL BLOOD PRESSURE CHANGES"
  1. S ARRAY(4,1)="PATCH 12 ITEMS"
  1. S ARRAY(5,1)="PXRM PATCH 26 DIALOG UPDATES"
  1. S ARRAY(6,1)="PXRM VISIT DATE MONTH REQ YEAR BLANK"
  1. S ARRAY(7,1)="PXRM*2*17 COMPUTED FINDINGS"
  1. S ARRAY(8,1)="RT VA-ALCOHOL NONE PAST 1YR"
  1. S ARRAY(9,1)="TX HIGH RISK FLU AND PNEUMONIA"
  1. S ARRAY(10,1)="UPDATE VA-DIABETES"
  1. S ARRAY(11,1)="VA BRANCHING LOGIC REMINDER UPDATES OEF/OIF"
  1. S ARRAY(12,1)="VA MH SCREENING REMINDERS UPDATE"
  1. S ARRAY(13,1)="VA-AAA SCREENING"
  1. S ARRAY(14,1)="VA-ALCOHOL AUDIT-C POSITIVE F/U EVAL"
  1. S ARRAY(15,1)="VA-ALCOHOL F/U POS AUDIT-C"
  1. S ARRAY(16,1)="VA-BL DEPRESSION SCREEN"
  1. S ARRAY(17,1)="VA-BREAST TUMOR"
  1. S ARRAY(18,1)="VA-DEPRESSION SCREENING"
  1. S ARRAY(19,1)="VA-DISABLE BRANCHING LOGIC REPLACEMENT ELEMENT"
  1. S ARRAY(20,1)="VA-EMBEDDED FRAGMENTS RISK EVALUATION"
  1. S ARRAY(21,1)="VA-EMBEDDED FRAGMENTS SCREEN"
  1. S ARRAY(22,1)="VA-GP ALC ADVICE2"
  1. S ARRAY(23,1)="VA-GP EF CONTACT INFORMATION"
  1. S ARRAY(24,1)="VA-GP LDL STATIN REMINDER NOT DUE"
  1. S ARRAY(25,1)="VA-HF ACUTE ILLNESS EVAL"
  1. S ARRAY(26,1)="VA-HF ETOH SELF SCORE AUD 10"
  1. S ARRAY(27,1)="VA-HOMELESSNESS SCREENING"
  1. S ARRAY(28,1)="VA-HOMELESSNESS SCREEENING DIALOG"
  1. S ARRAY(29,1)="VA-INFLUENZA 2010 UPDATES"
  1. S ARRAY(30,1)="VA-INFLUENZA H1N1 UPDATE"
  1. S ARRAY(31,1)="VA-IRAQ AFGHAN"
  1. S ARRAY(32,1)="VA-LIPID STATIN RX CVD/DM (VER1.0)"
  1. S ARRAY(33,1)="VA-MH HIGH RISK NO-SHOW ADHOC RPT"
  1. S ARRAY(34,1)="VA-MH NO SHOW APPT CLINICS LL"
  1. S ARRAY(35,1)="VA-MH STOP CODES FOR PTSD EVALUATION"
  1. S ARRAY(36,1)="VA-MHTC APPT STOP CODES AND EXCLUSION STOP"
  1. S ARRAY(37,1)="VA-MHTC NEEDS ASSIGNMENT"
  1. S ARRAY(38,1)="VA-MHV BMI COLORECTAL UPDATES PATCH 12"
  1. S ARRAY(39,1)="VA-MHV CERVICAL CANCER SCREEN"
  1. S ARRAY(40,1)="VA-MHV HIGH RISK TERMS"
  1. S ARRAY(41,1)="VA-MHV HYPERTENSION"
  1. S ARRAY(42,1)="VA-MHV INFLUENZA VACCINE"
  1. S ARRAY(43,1)="VA-MHV MAMMOGRAM SCREENING"
  1. S ARRAY(44,1)="VA-MHV RETINOPATHY TERMS"
  1. S ARRAY(45,1)="VA-OEF/OIF MONITOR"
  1. S ARRAY(46,1)="VA-OEF/OIF MONITOR REPORTING"
  1. S ARRAY(47,1)="VA-PATIENT RECORD FLAG INFORMATION"
  1. S ARRAY(48,1)="VA-POLYTRAUMA MARKER"
  1. S ARRAY(49,1)="VA-PROJECT ARCH VISN CONTRACT CARE PILOT ELIGIBILITY"
  1. S ARRAY(50,1)="VA-PTSD REASSESSMENT (PCL)"
  1. S ARRAY(51,1)="VA-TB/POSITIVE PPD"
  1. S ARRAY(52,1)="VA-TBI/POLY IDT EVALUATIONS ELEMENT UPDATE"
  1. S ARRAY(53,1)="VA-TERATOGENIC MEDICATIONS ORDER CHECKS"
  1. S ARRAY(54,1)="VA-TEXT INFO SCREEN FOR AAA"
  1. S ARRAY(55,1)="VA-WH DISCUSS BREAST CA SCREEN WOMAN 40-49"
  1. S ARRAY(56,1)="VA-WH MAMMOGRAM REVIEW RESULTS DIALOG"
  1. S ARRAY(57,1)="VA-WH MAMMOGRAM SCREENING"
  1. S ARRAY(58,1)="VA-WH MAMMOGRAM SCREENING DIALOG"
  1. S ARRAY(59,1)="VA-WH PAP SMEAR REVIEW RESULTS"
  1. S ARRAY(60,1)="VA-WH PAP SMEAR REVIEW RESULTS DIALOG"
  1. S ARRAY(61,1)="VA-WH PAP SMEAR SCREENING"
  1. S ARRAY(62,1)="VA-WH PAP SMEAR SCREENING DIALOG"
  1. S ARRAY(63,1)="VA-MH HIGH RISK NO-SHOW FOLLOW-UP"
  1. S ARRAY(64,1)="VA-WH DISCUSS BREAST CA WOMAN 40-49 DIALOG"
  1. S ARRAY(65,1)="VA-TERATOGENIC MEDICATIONS ORDER CHECKS (UPDATE #1)"
  1. S ARRAY(66,1)="VA-PNEUMOCOCCAL REMINDERS"
  1. S ARRAY(67,1)="VA-PATCH 36 POST COMPONENTS"
  1. S ARRAY(68,1)="VA-PATCH 31 POST HS COMPONENTS"
  1. S ARRAY(69,1)="VA-PALLIATIVE CARE CONSULT"
  1. S ARRAY(70,1)="VA-ECOE PATCH 30 ELEMENT UPDATE"
  1. S ARRAY(71,1)="PXRM*2*26 NATIONAL TAXONOMIES"
  1. S ARRAY(72,1)="PATCH 36 WH TAXONOMIES (5)"
  1. S ARRAY(73,1)="PRXM PATCH 26 ECOE UPDATE"
  1. S ARRAY(74,1)="PXRM PATCH 26 PALLIATIVE CARE UPDATE"
  1. Q
  1. ;
  1. ;===============================================================
  1. DELEI ;If the Exchange File entry already exists delete it.
  1. N ARRAY,IC,IND,LIST,LUVALUE,NUM
  1. D ARRAY(.ARRAY)
  1. S IC=0
  1. F S IC=$O(ARRAY(IC)) Q:'IC D
  1. .S LUVALUE(1)=ARRAY(IC,1)
  1. .D FIND^DIC(811.8,"","","U",.LUVALUE,"","","","","LIST")
  1. .I '$D(LIST) Q
  1. .S NUM=$P(LIST("DILIST",0),U,1)
  1. .I NUM'=0 D
  1. ..F IND=1:1:NUM D
  1. ... N DA,DIK
  1. ... S DIK="^PXD(811.8,"
  1. ... S DA=LIST("DILIST",2,IND)
  1. ... D ^DIK
  1. Q
  1. ;
  1. ;===============================================================
  1. DELDD ;Delete the old data dictionaries.
  1. N DIU,TEXT
  1. D EN^DDIOL("Removing old data dictionaries.")
  1. S DIU(0)=""
  1. F DIU=801.41,811.5,811.9 D
  1. . S TEXT=" Deleting data dictionary for file # "_DIU
  1. . D EN^DDIOL(TEXT)
  1. . D EN^DIU2
  1. Q
  1. ;Delete the cross-reference
  1. CVMEA N MSG,RESULT,XREF
  1. D BMES^XPDUTL("Deleting V MEASUREMENT XREF")
  1. D DELIXN^DDMOD(9000010.01,"ACR","","",.MSG)
  1. ;Create cross-reference for V MEASUREMENTS
  1. D BMES^XPDUTL("Creating V MEASUREMENT XREF.")
  1. ;Set the XREF nodes
  1. S XREF("FILE")=9000010.01
  1. S XREF("ROOT FILE")=9000010.01
  1. S XREF("SET")="D EVFILE^PXPXRM(9000010.01,.X,.DA)"
  1. S XREF("KILL")="D KEFILE^PXPXRM(9000010.01,.X,.DA)"
  1. S XREF("WHOLE KILL")="K ^PXRMINDX(9000010.01)"
  1. D SXREFVF(.XREF,"measurement type")
  1. D CREIXN^DDMOD(.XREF,"k",.RESULT,"","MSG")
  1. I RESULT="" D DCERRMSG(.MSG,.XREF)
  1. Q
  1. SXREFVF(XREF,ITEM) ;Set XREF array nodes common for all V files.
  1. N UITEM
  1. S UITEM=$$UP^XLFSTR(ITEM)
  1. S XREF("TYPE")="MU"
  1. S XREF("NAME")="ACR"
  1. S XREF("SHORT DESCR")="Clinical Reminders index."
  1. S XREF("DESCR",1)="This cross-reference builds two indexes, one for finding"
  1. S XREF("DESCR",2)="all patients with a particular "_ITEM_" and one for finding all"
  1. S XREF("DESCR",3)="the "_ITEM_"s a patient has."
  1. S XREF("DESCR",4)="The indexes are stored in the Clinical Reminders index global as:"
  1. S XREF("DESCR",5)=" ^PXRMINDX("_XREF("FILE")_",""IP"","_UITEM_",DFN,ENTRY DATE/TIME,DAS) and"
  1. S XREF("DESCR",6)=" ^PXRMINDX("_XREF("FILE")_",""PI"",DFN,"_UITEM_",ENTRY DATE/TIME,DAS)"
  1. S XREF("DESCR",7)="respectively."
  1. S XREF("DESCR",8)="For all the details, see the Clinical Reminders Index Technical Guide/Programmer's Manual."
  1. S XREF("USE")="ACTION"
  1. S XREF("EXECUTION")="R"
  1. S XREF("ACTIVITY")="IR"
  1. S XREF("VAL",1)=.01
  1. S XREF("VAL",1,"SUBSCRIPT")=1
  1. S XREF("VAL",2)=.02
  1. S XREF("VAL",2,"SUBSCRIPT")=2
  1. Q
  1. DCERRMSG(MSG,XREF) ;Display cross-reference creation error message.
  1. W !,"Cross-reference could not be created!"
  1. W !,"Error message:"
  1. D AWRITE^PXRMUTIL("MSG")
  1. W !!,"Cross-reference information:"
  1. D AWRITE^PXRMUTIL("XREF")
  1. Q
  1. SOURCE ;Loop through the taxonomies and reset the data sources
  1. N IEN,SOURCE
  1. S IEN=0 F S IEN=$O(^PXD(811.2,IEN)) Q:'+IEN D
  1. .S SOURCE=$P($G(^PXD(811.2,IEN,0)),U,4)
  1. .Q:SOURCE=""
  1. .D SPDS^PXRMPDS(IEN,SOURCE)
  1. Q