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

SR215UTL.m

Go to the documentation of this file.
SR215UTL ;HPS/JSG - SR*3*215 UTILITY ROUTINE; Apr 3, 2024@11:40
 ;;3.0;Surgery;**206,210,215**;24 Jun 93;Build 7
 ;
PRE ; -- pre-install process for SR*3*215
 I $D(^XTMP("PRE 2024-UPDATE BACKUP OF 137")) D  Q
 . D EN^DDIOL("The PRE 2024-UPDATE BACKUP of #137 already exists.","!")
 . D EN^DDIOL("Please resolve before performing the install again.")
 . K ^XTMP("PRE 2024-UPDATE BACKUP OF 137",1)
 N X1,X2,X
 S X1=DT,X2=120 D C^%DTC
 S ^XTMP("PRE 2024-UPDATE BACKUP OF 137",0)=$G(X)_"^"_$G(DT)_"^"_"Backup of file 137 before 2024 update is performed by Patch SR*3*215"
 D EN^DDIOL("Backing up the CPT EXCLUSIONS file (#137) to ^XTMP.","","!!?1")
 M ^XTMP("PRE 2024-UPDATE BACKUP OF 137",137)=^SRO(137) S ^XTMP("PRE 2024-UPDATE BACKUP OF 137",1)=DT
 D EN^DDIOL("Backup complete","","!!?1")
 ;
 D DATDEL ; delete data from file #137 prior to updating
 Q
 ;
BACK ; -- rollback PRE 2024-UPDATE BACKUP OF 137 from ^XTMP
 I '$D(^XTMP("PRE 2024-UPDATE BACKUP OF 137")) W !,"Backup does not exist." Q
 D DATDEL ; delete data from file #137 prior to the roolback
 M ^SRO(137)=^XTMP("PRE 2024-UPDATE BACKUP OF 137",137)
 K ^XTMP("PRE 2024-UPDATE BACKUP OF 137")
 W !!,"Rollback completed."
 Q
 ;
POST ; -- post-install process for SR*3*215
 ; -- check if already run
 I '$D(^XTMP("PRE 2024-UPDATE BACKUP OF 137",1)) D  Q
 . D EN^DDIOL("The PRE 2024-UPDATE BACKUP of #137 did not complete successfully.","!")
 . D EN^DDIOL("Please contact support and consider the rollback option before","!")
 . D EN^DDIOL("before performing the install again.")
 ; -- populate the CPT EXCLUSIONS file (#137)
 N SRI,SRJ,SRL,SRLIST,SRX,SRY,X,SRABC,I
 D MES^XPDUTL("  Populating CPT EXCLUSIONS file (#137)...")
 F SRJ=1:1 S SRLIST=$P($T(LIST+SRJ)," ;;",2) Q:SRLIST=""  F SRI=1:1 S SRX=$P(SRLIST,",",SRI) Q:SRX=""  I $D(^ICPT("B",SRX)) D INT
 D EX^SR215UT0,EX^SR215UT1,EX^SR215UT2,EX^SR215UT3
 ;
 ; -- The following CPT Code ranges are excluded: "00001-0051S", "0051U-0052S", "0052U-0053S", "0053U-0075S",
 ;    "0075U-0076S", "0076U-0078S", "0078U-0095S", "0095U-0098S", "0098U-0171S", "0171U-0172S", "0172U-0184S"
 ;    "0184U-01999", "70000-79999", "80000-89999", "90000-93589", "93593-96546", "96549-99999"
 S SRX="00001" F  S SRX=$O(^ICPT("B",SRX)) Q:SRX=$O(^ICPT("B","0051S"))  D INT
 S SRX="0051U" F  S SRX=$O(^ICPT("B",SRX)) Q:SRX=$O(^ICPT("B","0052S"))  D INT
 S SRX="0052U" F  S SRX=$O(^ICPT("B",SRX)) Q:SRX=$O(^ICPT("B","0053S"))  D INT
 S SRX="0053U" F  S SRX=$O(^ICPT("B",SRX)) Q:SRX=$O(^ICPT("B","0075S"))  D INT
 S SRX="0075U" F  S SRX=$O(^ICPT("B",SRX)) Q:SRX=$O(^ICPT("B","0076S"))  D INT
 S SRX="0076U" F  S SRX=$O(^ICPT("B",SRX)) Q:SRX=$O(^ICPT("B","0078S"))  D INT
 S SRX="0078U" F  S SRX=$O(^ICPT("B",SRX)) Q:SRX=$O(^ICPT("B","0095S"))  D INT
 S SRX="0095U" F  S SRX=$O(^ICPT("B",SRX)) Q:SRX=$O(^ICPT("B","0098S"))  D INT
 S SRX="0098U" F  S SRX=$O(^ICPT("B",SRX)) Q:SRX=$O(^ICPT("B","0171S"))  D INT
 S SRX="0171U" F  S SRX=$O(^ICPT("B",SRX)) Q:SRX=$O(^ICPT("B","0172S"))  D INT
 S SRX="0172U" F  S SRX=$O(^ICPT("B",SRX)) Q:SRX=$O(^ICPT("B","0184S"))  D INT
 S SRX="0184U" F  S SRX=$O(^ICPT("B",SRX)) Q:SRX=$O(^ICPT("B","01999"))  D INT
 S SRX="70000" F  S SRX=$O(^ICPT("B",SRX)) Q:SRX=$O(^ICPT("B","79999"))  D INT
 S SRX="80000" F  S SRX=$O(^ICPT("B",SRX)) Q:SRX=$O(^ICPT("B","89999"))  D INT
 S SRX="90000" F  S SRX=$O(^ICPT("B",SRX)) Q:SRX=$O(^ICPT("B","93589"))  D INT
 S SRX="93593" F  S SRX=$O(^ICPT("B",SRX)) Q:SRX=$O(^ICPT("B","96546"))  D INT ;new break for 2024
 S SRX="96549" F  S SRX=$O(^ICPT("B",SRX)) Q:SRX=$O(^ICPT("B","99999"))  D INT ;new break for 2024
 ;
EC ; -- Exclude CODES that start with alphabetic characters:
   D AC F SRX="A","B","C","D","E","G","H","J","K","L","M","P","Q","R","S","T","V","W","Z"  D 
   . F  S SRX=$O(^ICPT("B",SRX)) Q:SRX=""  I '$D(SRABC(SRX)) D INT
   ;
 ; -- Honor KIDS "No Delete" setting if called from a KIDS install.
 ; -- Delete routines SR215UT0, SR215UT1, SR215UT2, & SR215UT3
 I '$$GET^XUPARAM("XPD NO_EPP_DELETE") D
 . F X="SR215UT0","SR215UT1","SR215UT2","SR215UT3" X ^%ZOSF("TEST") I $T D
 . .D MES^XPDUTL(" Deleting routine "_X_"...") X ^%ZOSF("DEL")
 K DA,DIC,DD,DO,DINUM,X
 Q
 ;
AC ; -- Add back CODES With alpha characters that are included in 2024:
   ;;C9754,C9755,C9764,C9765,C9766,C9767,C9772,C9781,C9784,S2068,S2070,S2205,S2207,S2208,S2325
   F I=1:1:15 S SRABC($P($P($T(AC+1),";",3),",",I))=1
   Q
   ;
INT S SRY=0,SRY=$O(^ICPT("B",SRX,SRY)) Q:SRY=""
 K DA,DIC,DD,DO,DINUM S (DINUM,X)=SRY,DIC="^SRO(137,",DIC(0)="L" D FILE^DICN
 Q
 ;
DATDEL ; Delete all data from file #137
 N SRTXT
 S SRTXT="File #137 hasn't been set up yet, so no data to delete."
 I '$D(^SRO(137,0))#2 D DISP Q
 S SRTXT="File #137 doesn't have any data, so nothing to delete."
 I '$O(^SRO(137,0)) D DISP Q
 S SRTXT="Deleting data from file #137..."
 D DISP
 K ^SRO(137)
 S ^SRO(137,0)="CPT EXCLUSIONS^137P^^0"
 Q
 ;
DISP ;display one-line text either interactively or within KIDS installation
 I '$D(XPDNM)#2 U 0 W !!?5,SRTXT
 E  D BMES^XPDUTL(SRTXT)
 Q
 ;
LINES ;Create n lines each with 13 codes
 N L,LC,NC,I,C
 S LC=0,L="",NC=0
 F I=1:1:8011 S C=$P(^JSG(I),$C(9)),NC=NC+1 S L=$S(NC<13:L_C_",",1:L_C) I NC=13!(I=8011) D
 . S LC=LC+1,^JSGL(LC)=L,NC=0,L=""
 Q
 ;
LIST ;
 ;;0001A,0001F,0002A,0002M,0003A,0003M,0004A,0004M,0005F,0006M,0007M,00100,00102
 ;;00103,00104,0011A,0011M,00120,00124,00126,0012A,0012F,0012M,0013A,0013M,00140
 ;;00142,00144,00145,00147,00148,0014F,0014M,0015F,0015M,00160,00162,00164,0016M
 ;;00170,00172,00174,00176,0017M,0018M,00190,00192,0019M,00210,00211,00212,00214
 ;;00215,00216,00218,0021A,00220,00222,0022A,00300,0031A,00320,00322,00326,0034A
 ;;00350,00352,00400,00402,00404,00406,00410,0041A,0042A,0042T,0044A,00450,00454
 ;;00470,00472,00474,00500,0051A,00520,00522,00524,00528,00529,0052A,00530,00532
 ;;00534,00537,00539,0053A,00540,00541,00542,00546,00548,0054A,0054T,00550,0055T
 ;;00560,00561,00562,00563,00566,00567,00580,00600,00604,00620,00625,00626,00630
 ;;00632,00635,00640,0064A,00670,00700,00702,0071A,0071T,0072A,0072T,00730,00731
 ;;00732,0073A,0074A,00750,00752,00754,00756,00770,00790,00792,00794,00796,00797
 ;;00800,00802,00811,00812,00813,0081A,00820,0082A,00830,00832,00834,00836,0083A
 ;;00840,00842,00844,00846,00848,00851,00860,00862,00864,00865,00866,00868,00870
 ;;00872,00873,00880,00882,00902,00904,00906,00908,00910,00912,00914,00916,00918
 ;;0091A,00920,00921,00922,00924,00926,00928,0092A,00930,00932,00934,00936,00938
 ;;0093A,00940,00942,00944,00948,0094A,00950,00952,0100T,0101T,0102T,0104A,0106T
 ;;0107T,0108T,0109T,0110T,01112,0111A,01120,0112A,01130,0113A,01140,01150,01160
 ;;01170,01173,01200,01202,01210,01212,01214,01215,0121A,01220,01230,01232,01234
 ;;0124A,01250,01260,01270,01272,01274,01320,01340,0134A,01360,01380,01382,01390
 ;;01392,01400,01402,01404,0141A,01420,0142A,01430,01432,01440,01442,01444,0144A
 ;;01462,01464,01470,01472,01474,01480,01482,01484,01486,01490,01500,01502,0151A
 ;;01520,01522,0154A,01610,01620,01622,01630,01634,01636,01638,0164A,0164T,01650
 ;;01652,01654,01656,0165T,01670,01680,01710,01712,01714,01716,0171A,0172A,01730
 ;;01732,0173A,01740,01742,01744,0174A,0174T,01756,01758,0175T,01760,01770,01772
 ;;01780,01782,01810,01820,01829,01830,01832,01840,01842,01844,01850,01852,01860
 ;;01916,01920,01922,01924,01925,01926,01930,01931,01932,01933,01937,01938,01939
 ;;01940,01941,01942,01951,01952,01953,01958,01960,01961,01962,01963,01965,01966
 ;;01967,01968,01969,0198T,01990,01991,01992,01996,01999,0200T,0201T,0207T,0208T
 ;;0209T,0210T,0211T,0212T,0213T,0214T,0215T,0216T,0217T,0218T,0232T,0253T,0263T
 ;;0264T,0265T,0266T,0267T,0268T,0269T,0270T,0271T,0272T,0273T,0275T,0278T,0308T
 ;;0329T,0330T,0331T,0332T,0333T,0335T,0338T,0339T,0342T,0345T,0347T,0348T,0349T
 ;;0350T,0351T,0352T,0353T,0354T,0358T,0362T,0373T,0378T,0379T,0394T,0395T,0397T
 ;;0398T,0402T,0403T,0404T,0408T,0409T,0410T,0411T,0412T,0413T,0414T,0415T,0416T
 ;;0417T,0418T,0419T,0420T,0422T,0424T,0425T,0426T,0427T,0428T,0429T,0430T,0431T
 ;;0432T,0433T,0434T,0435T,0436T,0437T,0439T,0440T,0441T,0442T,0443T,0444T,0445T
 ;;0446T,0447T,0448T,0449T,0450T,0464T,0465T,0469T,0472T,0473T,0474T,0479T,0480T
 ;;0481T,0485T,0486T,0488T,0489T,0490T,0494T,0495T,0496T,0500F,0500T,0501F,0501T
 ;;0502F,0502T,0503F,0503T,0504T,0505F,0505T,0506T,0507F,0507T,0508T,0509F,0509T
 ;;0510T,0511T,0512T,0513F,0513T,0514F,0515T,0516F,0516T,0517F,0517T,0518F,0518T
 ;;0519F,0519T,0520F,0520T,0521F,0521T,0522T,0523T,0524T,0525F,0525T,0526F,0526T
 ;;0527T,0528F,0528T,0529F,0529T,0530T,0531T,0532T,0533T,0534T,0535F,0535T,0536T
 ;;0537T,0538T,0539T,0540F,0540T,0541T,0542T,0545F,0546T,0547T,0550F,0551F,0552T
 ;;0553T,0554T,0555F,0555T,0556F,0556T,0557F,0557T,0558T,0559T,0560T,0561T,0562T
 ;;0563T,0564T,0565T,0566T,0567T,0568T,0571T,0572T,0573T,0574T,0575F,0575T,0576T
 ;;0577T,0578T,0579T,0580F,0580T,0581F,0581T,0582F,0582T,0583F,0583T,0584F,0587T
 ;;0588T,0589T,0590T,0591T,0592T,0593T,0594T,0596T,0597T,0598T,0599T,0600T,0601T
 ;;0602T,0603T,0604T,0605T,0606T,0607T,0608T,0609T,0610T,0611T,0612T,0613T,0614T
 ;;0615T,0616T,0617T,0618T,0619T,0620T,0621T,0622T,0623T,0624T,0625T,0626T,0627T
 ;;0628T,0629T,0630T,0631T,0632T,0633T,0634T,0635T,0636T,0637T,0638T,0639T,0640T
 ;;0641T,0642T,0647T,0648T,0649T,0650T,0651T,0652T,0653T,0654T,0655T,0658T,0659T
 ;;0660T,0661T,0662T,0663T,0664T,0671T,0672T,0673T,0682T,0683T,0684T,0685T,0686T
 ;;0687T,0688T,0689T,0690T,0691T,0692T,0693T,0694T,0695T,0696T,0697T,0698T,0699T
 ;;0700T,0701T,0704T,0705T,0706T,0707T,0708T,0709T,0710T,0711T,0712T,0713T,0715T
 ;;0716T,0717T,0718T,0719T,0720T,0721T,0722T,0723T,0724T,0728T,0729T,0730T,0731T
 ;;0732T,0733T,0734T,0736T,0738T,0739T,0740T,0741T,0742T,0743T,0745T,0746T,0747T
 ;;0748T,0749T,0750T,0751T,0752T,0753T,0754T,0755T,0756T,0757T,0758T,0759T,0760T
 ;;0761T,0762T,0763T,0764T,0765T,0766T,0767T,0768T,0769T,0770T,0771T,0772T,0773T
 ;;0774T,0775T,0776T,0777T,0778T,0779T,0780T,0781T,0782T,0783T,0784T,0785T,0786T
 ;;0787T,0788T,0789T,0790T,0791T,0792T,0793T,0794T,0795T,0796T,0797T,0798T,0799T
 ;;0800T,0801T,0802T,0803T,0804T,0807T,0808T,0810T,0811T,0812T,0813T,0814T,0815T
 ;;0816T,0817T,0818T,0819T,0820T,0821T,0822T,0823T,0824T,0825T,0826T,0827T,0828T
 ;;0829T,0830T,0831T,0832T,0833T,0834T,0835T,0836T,0837T,0838T,0839T,0840T,0841T
 ;;0842T,0843T,0844T,0845T,0846T,0847T,0848T,0849T,0850T,0851T,0852T,0853T,0854T
 ;;0855T,0856T,0857T,0858T,0859T,0860T,0861T,0862T,0863T,0864T,0865T,0866T,10004
 ;;10005,10006,10007,10008,10009,1000F,10010,10011,10012,10021,1002F,10030,10035
 ;;10036,1003F,10040,1004F,1005F,10060,10061,1006F,1007F,10080,10081,1008F,1010F
 ;;1011F,10120,10121,1012F,10140,1015F,10160,10180,1018F,1019F,1022F,1026F,1030F
 ;;1031F,1032F,1033F,1034F,1035F,1036F,1038F,1039F,1040F,1050F,1052F,1055F,1060F
 ;;1061F,1065F,1066F,1070F,1071F,1090F,1091F,11000,11001,1100F,1101F,11042,11043
 ;;11044,11045,11046,11047,11055,11056,11057,11102,11103,11104,11105,11106,11107
 ;;1110F,1111F,1116F,1118F,1119F,11200,11201,1121F,1123F,1124F,1125F,1126F,1127F
 ;;1128F,11300,11301,11302,11303,11305,11306,11307,11308,1130F,11310,11311,11312
 ;;11313,1134F,1135F,1136F,1137F,11400,11401,11402,11403,11404,11406,11420,11421
 ;;11422,11423,11424,11426,11440,11441,11442,11443,11444,11446,11450,11451,11462
 ;;11463,11470,11471,1150F,1151F,1152F,1153F,1157F,1158F,1159F,11600,11601,11602
 ;;11603,11604,11606,1160F,11620,11621,11622,11623,11624,11626,11640,11641,11642
 ;;11643,11644,11646,1170F,11719,11720,11721,11730,11732,11740,11750,11755,1175F
 ;;11760,11762,11765,11770,11771,11772,1180F,1181F,1182F,1183F,11900,11901,11920
 ;;11921,11922,11950,11951,11952,11954,11960,11970,11971,11976,11980,11981,11982
 ;;11983,12001,12002,12004,12005,12006,12007,1200F,12011,12013,12014,12015,12016
 ;;12017,12018,12020,12021,12031,12032,12034,12035,12036,12037,12041,12042,12044
 ;;12045,12046,12047,12051,12052,12053,12054,12055,12056,12057,1205F,1220F,13100
 ;;13101,13102,13120,13121,13122,13131,13132,13133,13151,13152,13153,13160,14000
 ;;14001,1400F,14020,14021,14040,14041,14060,14061,14301,14302,14350,1450F,1451F
 ;;1460F,1461F,1490F,1491F,1493F,1494F,15002,15003,15004,1500F,1501F,1502F,1503F
 ;;1504F,15050,1505F,15100,15101,15110,15111,15115,15116,15120,15121,15130,15131
 ;;15135,15136,15150,15151,15152,15155,15156,15157,15200,15201,15220,15221,15240
 ;;15241,15260,15261,15271,15272,15273,15274,15275,15276,15277,15278,15570,15572
 ;;15574,15576,15730,15733,15769,15771,15772,15773,15774,15775,15776,15777,15780
 ;;15781,15782,15783,15786,15787,15788,15789,15792,15793,15819,15820,15821,15822
 ;;15823,15824,15825,15826,15828,15829,15832,15833,15834,15835,15836,15837,15838
 ;;15839,15840,15841,15842,15845,15851,15852,15853,15854,15860,15876,15877,15878
 ;;15879,16000,16020,16025,16030,16035,16036,17000,17003,17004,17106,17107,17108
 ;;17110,17111,17250,17260,17261,17262,17263,17264,17266,17270,17271,17272,17273
 ;;17274,17276,17280,17281,17282,17283,17284,17286,17311,17312,17313,17314,17315
 ;;17340,17360,17380,17999,19000,19001,19020,19030,19081,19082,19083,19084,19085
 ;;19086,19100,19101,19105,19110,19112,19120,19125,19126,19281,19282,19283,19284
 ;;19285,19286,19287,19288,19294,2000F,2001F,2002F,2004F,2010F,2014F,2015F,2016F
 ;;2018F,2019F,20200,20205,20206,2020F,2021F,20220,20225,2022F,2023F,20240,20245
 ;;2024F,20250,20251,2025F,2026F,2027F,2028F,2029F,2030F,2031F,2033F,2035F,2040F
 ;;2044F,20500,20501,2050F,20520,20525,20526,20527,20550,20551,20552,20553,20555
 ;;20560,20561,20600,20604,20605,20606,2060F,20610,20611,20612,20615,20650,20660
 ;;20661,20662,20663,20664,20665,20670,20680,20690,20692,20693,20694,20696,20697
 ;;20700,20701,20702,20703,20704,20705,20900,20902,20910,20912,20920,20922,20924