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