PXVP217 ;ISP/LMT - PX*1*217 KIDS Routine ;Aug 16, 2022@13:48:51
;;1.0;PCE PATIENT CARE ENCOUNTER;**217**;Aug 12, 1996;Build 134
;
Q
;
CHFSCAT ;Correct Service Categories that are HF.
; ZEXCEPT: ZTQUEUED,ZTSTOP
N CNT,FDA,IEN,IENS,MSG,NUMC
;
S ^XTMP("PXVP217-CHFSCAT",0)=$$FMADD^XLFDT(DT,1000)_U_DT_U_"Correct Service Categories that are HF"
S NUMC=0
S CNT=0
;
S IEN=0
F S IEN=+$O(^AUPNVSIT(IEN)) Q:IEN=0 D Q:$G(ZTSTOP)
. S CNT=CNT+1
. ; take a "rest" - allow OS to swap out process
. I '(CNT#10000) D I $D(ZTQUEUED),$$S^%ZTLOAD("Processing Visit #"_IEN) S ZTSTOP=1 Q
. . S ^XTMP("PXVP217-CHFSCAT","LAST")=IEN
. . H 1
. ;
. I $P(^AUPNVSIT(IEN,0),U,7)'="HF" Q
. ;
. S ^XTMP("PXVP217-CHFSCAT",IEN)=""
. S IENS=IEN_","
. S FDA(9000010,IENS,.07)="H"
. K MSG
. D FILE^DIE("","FDA","MSG")
. I $D(MSG) D Q
. . S ^XTMP("PXVP217-CHFSCAT",IEN,"ERROR")="The FILE^DIE call returned an error"
. . M ^XTMP("PXVP217-CHFSCAT",IEN,"ERROR","MSG")=MSG
. ;
. S NUMC=NUMC+1
;
S ^XTMP("PXVP217-CHFSCAT","NUMCORRECTED")=$G(^XTMP("PXVP217-CHFSCAT","NUMCORRECTED"))+NUMC
Q
;
TSKHFSC ; Task out job to correct Service Categories that are HF
N ZTDTH,ZTSAVE,ZTIO,ZTSK,ZTRTN,ZTDESC,ZTUCI,ZTCPU,ZTSYNC,ZTKIL
;
S ZTRTN="CHFSCAT^PXVP217"
S ZTDESC="Correct Service Categories that are HF"
S ZTIO=""
S ZTDTH=$H
D ^%ZTLOAD
I $G(ZTSK) D BMES("""Correct Service Categories that are HF"" has been queued, task number "_ZTSK)
I '$G(ZTSK) D BMES("ERROR: ""Correct Service Categories that are HF"" failed to queue. Please email the Implementation Team.")
;
Q
;
PRE ;KIDS Pre install for PX*1*217
D RMOLDDDS
Q
;
POST ; KIDS Post install for PX*1*217
D BMES("*** Post install started ***")
;
D SKACHXR ; Update ACR cross-reference on V SKIN TEST file
D SKAHXR ; Update AH cross-reference on V SKIN TEST file
D SKCPT ; Set PXV SKIN TEST READING CPT parameter
D IMMMAILG ;Create PXV IMM INVENTORY ALERTS mail group
D SETPAR ; Set param value for PXV IMM INVENTORY ALERTS
D IMMDEF ; Update the IMM DEFAULT RESPONSES (920.05) file - Immunizations
D CONDEF ; Update the IMM DEFAULT RESPONSES (920.05) file - Contra/Refusals
D TSKHFSC ; Correct Service Categories that are HF
;
D BMES("*** Post install completed ***")
;
Q
;
RMOLDDDS ;Remove old data dictionaries.
N DIU,TEXT
D BMES^XPDUTL("Removing old data dictionaries.")
S DIU(0)=""
F DIU=9000010.13,9000010.16,9000010.23,9999999.09,9999999.15,9999999.64 D
. S TEXT=" Deleting data dictionary for file # "_DIU
. D MES^XPDUTL(TEXT)
. D EN^DIU2
Q
;
SKACHXR ; Update ACR cross-reference on V SKIN TEST file
;
D BMES("*** Updating ACR cross-reference on V SKIN TEST file ***")
;
N PXXR,PXRES,PXOUT
S PXXR("FILE")=9000010.12
S PXXR("NAME")="ACR"
S PXXR("TYPE")="MU"
S PXXR("USE")="A"
S PXXR("EXECUTION")="R"
S PXXR("ACTIVITY")="IR"
S PXXR("SHORT DESCR")="Clinical Reminders index."
S PXXR("DESCR",1)="This cross-reference builds two indexes, one for finding all patients"
S PXXR("DESCR",2)="with a particular skin test and one for finding all the skin tests a"
S PXXR("DESCR",3)="patient has."
S PXXR("DESCR",4)="The indexes are stored in the Clinical Reminders index global as:"
S PXXR("DESCR",5)=" ^PXRMINDX(9000010.12,""IP"",SKIN TEST,DFN,DATE,DAS) and"
S PXXR("DESCR",6)=" ^PXRMINDX(9000010.12,""PI"",DFN,SKIN TEST,DATE,DAS)"
S PXXR("DESCR",7)="respectively."
S PXXR("DESCR",8)=" "
S PXXR("DESCR",9)="Where"
S PXXR("DESCR",10)=" SKIN TEST is a pointer to file #9999999.28."
S PXXR("DESCR",11)=" DFN is a pointer to file #2."
S PXXR("DESCR",12)=" DATE is EVENT DATE AND TIME, if it exists. If it does not, then it is"
S PXXR("DESCR",13)="VISIT/ADMIT DATE&TIME."
S PXXR("DESCR",14)=" DAS is the internal entry number of the entry in file #9000010.12."
S PXXR("DESCR",15)=" "
S PXXR("DESCR",16)="For all the details, see the Clinical Reminders Index Technical"
S PXXR("DESCR",17)="Guide/Programmer's Manual."
S PXXR("DESCR",18)=" "
S PXXR("SET")="D SVFILE^PXPXRM(9000010.12,.X,.DA)"
S PXXR("KILL")="D KVFILE^PXPXRM(9000010.12,.X,.DA)"
S PXXR("WHOLE KILL")="K ^PXRMINDX(9000010.12)"
S PXXR("VAL",1)=.01
S PXXR("VAL",1,"SUBSCRIPT")=1
S PXXR("VAL",1,"COLLATION")="F"
S PXXR("VAL",2)=.02
S PXXR("VAL",2,"SUBSCRIPT")=2
S PXXR("VAL",2,"COLLATION")="F"
S PXXR("VAL",3)=.03
S PXXR("VAL",3,"SUBSCRIPT")=3
S PXXR("VAL",3,"COLLATION")="F"
S PXXR("VAL",4)=1201
S PXXR("VAL",4,"COLLATION")="F"
S PXXR("VAL",5)=.06
S PXXR("VAL",5,"COLLATION")="F"
D CREIXN^DDMOD(.PXXR,"k",.PXRES,"PXOUT")
I $G(PXRES) D
. D MES("Cross-reference "_$P(PXRES,U,2)_" (#"_$P(PXRES,U,1)_") was updated successfully.")
I $G(PXRES)="" D
. D MES("*** ERROR: Failed to update cross-reference. ***")
Q
;
SKAHXR ; Update AH cross-reference on V SKIN TEST file
;
D BMES("*** Updating AH cross-reference on V SKIN TEST file ***")
;
N PXXR,PXRES,PXOUT
S PXXR("FILE")=9000010.12
S PXXR("NAME")="AH"
S PXXR("TYPE")="MU"
S PXXR("USE")="A"
S PXXR("EXECUTION")="R"
S PXXR("ACTIVITY")="IR"
S PXXR("SHORT DESCR")="Hours between placement and reading"
S PXXR("DESCR",1)="This cross reference calculates the number of hours between the EVENT "
S PXXR("DESCR",2)="DATE AND TIME field (#1201) and the DATE READ field (#.06) and stores "
S PXXR("DESCR",3)="that value in the HOURS READ POST-PLACEMENT field (#1214)."
S PXXR("SET")="D HR^PXVUTL Q"
S PXXR("KILL")="D HR^PXVUTL Q"
S PXXR("WHOLE KILL")="Q"
S PXXR("VAL",1)=.06
S PXXR("VAL",1,"COLLATION")="F"
S PXXR("VAL",2)=1201
S PXXR("VAL",2,"COLLATION")="F"
S PXXR("VAL",3)=1214
S PXXR("VAL",3,"COLLATION")="F"
D CREIXN^DDMOD(.PXXR,"k",.PXRES,"PXOUT")
I $G(PXRES) D
. D MES("Cross-reference "_$P(PXRES,U,2)_" (#"_$P(PXRES,U,1)_") was updated successfully.")
I $G(PXRES)="" D
. D MES("*** ERROR: Failed to update cross-reference. ***")
Q
;
;
SKCPT ; Set PXV SKIN TEST READING CPT parameter
;
N PXDATE,PXX
;
D BMES("*** Setting PXV SKIN TEST READING CPT parameter ***")
;
; See if this is the first install after we started pushing out this parameter.
; We don't want to overwrite the user's settings.
S PXDATE=3180807
S PXX=$$INSTALDT^XPDUTL("PX*1.0*217",.PXX)
I $O(PXX(PXDATE)) D Q
. D MES(" No need to set the parameter, as it was set previously.")
;
D MES(" Setting the parameter to 99211 at the SYS level.")
D PUT^XPAR("SYS","PXV SKIN TEST READING CPT",1,"99211")
;
Q
;
;
IMMMAILG ;Create PXV IMM INVENTORY ALERTS mail group
N PXDESC,PXUSERS,PXMG
;
D BMES("*** Creating the PXV IMM INVENTORY ALERTS Mail Group ***")
S PXDESC(1)="This mail group will receive messages when an immunization is running low on"
S PXDESC(2)="stock."
S PXUSERS(DUZ)=""
S PXMG=$$MG^XMBGRP("PXV IMM INVENTORY ALERTS",1,DUZ,1,.PXUSERS,.PXDESC,1)
I PXMG D MES(" Created the mail group (#"_PXMG_").")
I 'PXMG D MES(" Mail Group was not created.")
Q
;
;
SETPAR ; Set param value for PXV IMM INVENTORY ALERTS
N PXVAL,PXERR
D BMES("Setting PKG value for parameter PXV IMM INVENTORY ALERTS...")
;
S PXVAL="YES"
D EN^XPAR("PKG","PXV IMM INVENTORY ALERTS",1,.PXVAL,.PXERR)
I +$G(PXERR)>0 D MES(" ERROR #"_$P(PXERR,U)_": "_$P(PXERR,U,2)) Q
D MES(" DONE")
Q
;
IMMDEF ; Populate the IMM DEFAULT RESPONSES (920.05) file, Immunizations
;
N PXDOSE,PXFDA,PXI,PXIENS,PXIMM,PXINST,PXLINE,PXNUNITS,PXROUTE,PXSITE,PXUCUM,PXUNITS,PXIEN
;
D BMES("*** Populate the IMM DEFAULT RESPONSES (920.05) file - Immunizations ***")
;
I $O(^PXV(920.05,0)),'$D(^XTMP("PXVP217")) D
. S ^XTMP("PXVP217",0)=$$FMADD^XLFDT(DT,60)_"^"_DT
. M ^XTMP("PXVP217",920.05)=^PXV(920.05)
;
S PXINST=$$KSP^XUPARAM("INST")
I 'PXINST D Q
. D MES("ERROR: No default Institution. Can't populate file.")
;
F PXI=2:1 S PXLINE=$P($T(IMMDATA+PXI),";;",2) Q:PXLINE="" D
. K PXFDA,PXIEN
. S PXIMM=$P(PXLINE,U,1)
. S PXROUTE=$P(PXLINE,U,2)
. S PXSITE=$P(PXLINE,U,3)
. S PXDOSE=$P(PXLINE,U,4)
. S PXUNITS=$P(PXLINE,U,5)
. S PXNUNITS=$P(PXLINE,U,6)
. ;
. I PXIMM="" D Q
. . D MES("ERROR: Immunization null. Can't populate this entry.")
. S PXIMM=$O(^AUTTIMM("AVUID",PXIMM,0))
. I 'PXIMM D Q
. . D MES("ERROR: Immunization not found. Can't populate this entry.")
. ;
. ;I $D(^PXV(920.05,"AC",PXINST,PXIMM)) D Q
. ;. D MES("Default already defined for: "_PXIMM_". Skiping this entry.")
. ;
. I PXROUTE'="" D
. . S PXROUTE=$O(^PXV(920.2,"AVUID",PXROUTE,0))
. . I 'PXROUTE D
. . . D MES("ERROR: Route not found. Can't populate it for immunization #"_PXIMM_".")
. . . S PXROUTE=""
. ;
. I PXSITE'="" D
. . S PXSITE=$O(^PXV(920.3,"AVUID",PXSITE,0))
. . I 'PXSITE D
. . . D MES("ERROR: Site not found. Can't populate it for immunization #"_PXIMM_".")
. . . S PXSITE=""
. ;
. K PXUCUM
. I PXUNITS'="" D
. . D UCUMDATA^LEXMUCUM(PXUNITS,.PXUCUM)
. . S PXUNITS=$O(PXUCUM(0))
. . I 'PXUNITS D
. . . S PXUNITS=""
. . . D MES("ERROR: Units not found. Can't populate it for immunization #"_PXIMM_".")
. ;
. I 'PXROUTE,'PXSITE,PXDOSE="",PXUNITS="",PXNUNITS="" Q
. ;
. S PXIENS="?+1,"
. S PXFDA(920.05,PXIENS,.01)=PXINST
. S PXIENS="?+2,?+1,"
. S PXFDA(920.051,PXIENS,.01)=PXIMM
. I PXROUTE'="" S PXFDA(920.051,PXIENS,1302)=PXROUTE
. I PXSITE'="" S PXFDA(920.051,PXIENS,1303)=PXSITE
. S PXFDA(920.051,PXIENS,1312)=PXDOSE
. I PXUNITS'="" S PXFDA(920.051,PXIENS,1313)=PXUNITS
. I PXNUNITS'="" S PXFDA(920.051,PXIENS,1314)=PXNUNITS
. K ^TMP("DIERR",$J)
. S PXIEN(2)=PXIMM
. D UPDATE^DIE("","PXFDA","PXIEN")
. I $D(^TMP("DIERR",$J)) D MES("ERROR: Error filing default for Immunization #"_PXIMM_".")
Q
;
CONDEF ; Populate the IMM DEFAULT RESPONSES (920.05) file, Contra/Refusals
;
N PXDAYS,PXFDA,PXFILE,PXI,PXIEN,PXIENS,PXINST,PXLINE,PXVUID
;
D BMES("*** Populate the IMM DEFAULT RESPONSES (920.05) file - Contraindications/Refusals ***")
;
S PXINST=$$KSP^XUPARAM("INST")
I 'PXINST D Q
. D MES("ERROR: No default Institution. Can't populate file.")
;
F PXI=2:1 S PXLINE=$P($T(CONDATA+PXI),";;",2) Q:PXLINE="" D
. K PXFDA,PXIEN
. S PXFILE=$P(PXLINE,U,1)
. S PXVUID=$P(PXLINE,U,3)
. S PXDAYS=$P(PXLINE,U,4)
. ;
. I PXFILE=""!(PXVUID="")!(PXDAYS="") D Q
. . D MES("ERROR: File #, VUID, and/or Days is null. Can't populate this entry.")
. S PXIEN=$O(^PXV(PXFILE,"AVUID",PXVUID,0))
. I 'PXIEN D Q
. . D MES("ERROR: Contra/Refusal not found. Can't populate this entry.")
. ;
. I PXDAYS<0!(PXDAYS>10000) D Q
. . D MES("ERROR: Days '"_PXDAYS_"' is not appropriate value. Skipping.")
. ;
. S PXIENS="?+1,"
. S PXFDA(920.05,PXIENS,.01)=PXINST
. S PXIENS="?+2,?+1,"
. S PXFDA(920.052,PXIENS,.01)=PXIEN_";PXV("_PXFILE_","
. S PXFDA(920.052,PXIENS,.02)=PXDAYS
. K ^TMP("DIERR",$J)
. D UPDATE^DIE("","PXFDA")
. I $D(^TMP("DIERR",$J)) D MES("ERROR: Error filing default for Contra/Refusal #"_PXIEN_";PXV("_PXFILE_",")
Q
;
BMES(STR) ;
; Write string
D BMES^XPDUTL($$TRIM^XLFSTR($$CJ^XLFSTR(STR,$G(IOM,80)),"R"," "))
Q
MES(STR) ;
; Write string
D MES^XPDUTL($$TRIM^XLFSTR($$CJ^XLFSTR(STR,$G(IOM,80)),"R"," "))
Q
;
;
IMMDATA ;Data to populate the IMM DEFAULT RESPONSES (920.05) file
;;VUID^ROUTE^SITE^DOSE^UNITS^NON-STANDARD UNITS
;;5197809^4500642^^2^^Tablets
;;5197633^4706241^^.5^mL^
;;5197833^4706241^^^mL^
;;5197623^5197549^^^mL^
;;5245875^4500642^^90^mL^
;;5333977^4706241^^.5^mL^
;;5333973^4706241^^.5^mL^
;;5333969^4706241^^^mL^
;;5333975^4706241^^.5^mL^
;;5333971^4706241^^.3^mL^
;;5330716^4706258^^.5^mL^
;;5197639^4706241^^.5^mL^
;;5197625^4706241^^.5^mL^
;;5197739^4706241^^.5^mL^
;;5327721^4706241^^.5^mL^
;;5197747^4706241^^.5^mL^
;;5197765^4706241^^.5^mL^
;;5197783^4706241^^.5^mL^
;;5335437^4706241^^1^mL^
;;5197679^4706241^^1^mL^
;;5197709^4706241^^.5^mL^
;;5197735^4706241^^1^mL^
;;5197607^4706241^^.5^mL^
;;5197661^4706241^^^mL^
;;5197663^4706241^^1^mL^
;;5258667^4706241^^.5^mL^
;;5197673^4706241^^.5^mL^
;;5197671^4706241^^.5^mL^
;;5197687^4706241^^.5^mL^
;;5215778^4706241^^.5^mL^
;;5197831^4706241^^.5^mL^
;;5333949^4706241^^.5^mL^
;;5197793^4706241^^.5^mL^
;;5331733^4706241^^.7^mL^
;;5245869^4706241^^.5^mL^
;;5258486^4706241^^.5^mL^
;;5197829^4706241^^.5^mL^
;;5197819^4706241^^.5^mL^
;;5215772^4706241^^.5^mL^
;;5215780^4706239^^.1^mL^
;;5197817^4706252^^.2^mL^
;;5197827^4706241^^.5^mL^
;;5254431^4706241^^.5^mL^
;;5197805^4706241^^.5^mL^
;;5197803^4706241^^.5^mL^
;;5197811^4706239^^.1^mL^
;;5245607^4706241^^.5^mL^
;;5197611^^^.5^mL^
;;5197791^4706241^^.5^mL^
;;5215782^4706241^^.5^mL^
;;5215774^4706241^^.5^mL^
;;5197795^4706241^^.5^mL^
;;5197755^4706241^^.5^mL^
;;5333947^4706241^^.5^mL^
;;5197597^4706258^^.5^mL^
;;5197725^4706258^^.5^mL^
;;5197789^4706241^^.5^mL^
;;5197645^4706241^^.5^mL^
;;5248397^4706241^^1^mL^
;;5248399^4706241^^1^mL^
;;5197763^4500642^^1^mL^
;;5197759^4500642^^2^mL^
;;5333951^^^^mL^
;;5197609^4706241^^.5^mL^
;;5197753^4706241^^.5^mL^
;;5197757^4706241^^.5^mL^
;;5197635^4500642^^1^^Capsules
;;5197729^4706241^^.5^mL^
;;5197695^5197549^^2.5^uL^
;;5197627^4706258^^.5^mL^
;;5197649^4706258^^.5^mL^
;;5251135^^^.5^mL^
;;5197767^4706258^^.65^mL^
;;5258663^4706241^^.5^mL^
;;5339688^4706241^^.5^mL^
;;5339690^4706241^^.5^mL^
;;5339697^4706241^^.3^mL^
;;5339699^4706241^^.2^mL^
;;5339701^4706241^^.2^mL^
;;5340643^4706241^^.5^mL^
;;5339892^4706241^^1^mL^
;;5342690^^^.5^mL^
;;5342688^^^^mL^
;;5342684^4706241^^.25^mL^
;;5342686^4706241^^.5^mL^
;;
CONDATA ;Data to populate the IMM DEFAULT RESPONSES (920.05) file
;;FILE^NAME^VUID^WARN UNTIL DAYS
;;920.4^CURRENT IMMUNODEFICIENCY^5198139^90
;;920.4^CURRENT PREGNANCY^5198141^280
;;920.4^ENCEPHALOPATHY PREVIOUS DOSE^5198127^0
;;920.4^HX ARTHUS REACTION^5198135^0
;;920.4^HX INTUSSUSCEPTION^5198125^0
;;920.4^LATEX ALLERGY^5198121^0
;;920.4^SEVERE ALLERGY EGGS^5198107^0
;;920.4^SEVERE GELATIN ALLERGY^5251118^0
;;920.4^SEVERE NEOMYCIN ALLERGY^5198111^0
;;920.4^SEVERE POLYMYXIN B ALLERGY^5198123^0
;;920.4^SEVERE REACTION PREVIOUS DOSE^5198117^0
;;920.4^SEVERE STREPTOMYCIN ALLERGY^5198113^0
;;920.4^SEVERE YEAST ALLERGY^5237393^0
;;920.4^CONCURRENT TB SKIN TEST^5198101^7
;;920.4^CURRENT ACUTE ILLNESS^5198131^7
;;920.4^CURRENT FEVER^5198129^7
;;920.4^THROMBOCYTOPENIA^5198143^30
;;920.4^UNSTABLE/EVOLVING NEURO DZ^5198137^30
;;920.5^OTHER^5198154^30
;;920.5^PARENTAL DECISION^5198150^365
;;920.5^PATIENT DECISION^5198156^30
;;920.5^RELIGIOUS EXEMPTION^5198152^365
;;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPXVP217 14708 printed Nov 22, 2024@17:41:53 Page 2
PXVP217 ;ISP/LMT - PX*1*217 KIDS Routine ;Aug 16, 2022@13:48:51
+1 ;;1.0;PCE PATIENT CARE ENCOUNTER;**217**;Aug 12, 1996;Build 134
+2 ;
+3 QUIT
+4 ;
CHFSCAT ;Correct Service Categories that are HF.
+1 ; ZEXCEPT: ZTQUEUED,ZTSTOP
+2 NEW CNT,FDA,IEN,IENS,MSG,NUMC
+3 ;
+4 SET ^XTMP("PXVP217-CHFSCAT",0)=$$FMADD^XLFDT(DT,1000)_U_DT_U_"Correct Service Categories that are HF"
+5 SET NUMC=0
+6 SET CNT=0
+7 ;
+8 SET IEN=0
+9 FOR
SET IEN=+$ORDER(^AUPNVSIT(IEN))
if IEN=0
QUIT
Begin DoDot:1
+10 SET CNT=CNT+1
+11 ; take a "rest" - allow OS to swap out process
+12 IF '(CNT#10000)
Begin DoDot:2
+13 SET ^XTMP("PXVP217-CHFSCAT","LAST")=IEN
+14 HANG 1
End DoDot:2
IF $DATA(ZTQUEUED)
IF $$S^%ZTLOAD("Processing Visit #"_IEN)
SET ZTSTOP=1
QUIT
+15 ;
+16 IF $PIECE(^AUPNVSIT(IEN,0),U,7)'="HF"
QUIT
+17 ;
+18 SET ^XTMP("PXVP217-CHFSCAT",IEN)=""
+19 SET IENS=IEN_","
+20 SET FDA(9000010,IENS,.07)="H"
+21 KILL MSG
+22 DO FILE^DIE("","FDA","MSG")
+23 IF $DATA(MSG)
Begin DoDot:2
+24 SET ^XTMP("PXVP217-CHFSCAT",IEN,"ERROR")="The FILE^DIE call returned an error"
+25 MERGE ^XTMP("PXVP217-CHFSCAT",IEN,"ERROR","MSG")=MSG
End DoDot:2
QUIT
+26 ;
+27 SET NUMC=NUMC+1
End DoDot:1
if $GET(ZTSTOP)
QUIT
+28 ;
+29 SET ^XTMP("PXVP217-CHFSCAT","NUMCORRECTED")=$GET(^XTMP("PXVP217-CHFSCAT","NUMCORRECTED"))+NUMC
+30 QUIT
+31 ;
TSKHFSC ; Task out job to correct Service Categories that are HF
+1 NEW ZTDTH,ZTSAVE,ZTIO,ZTSK,ZTRTN,ZTDESC,ZTUCI,ZTCPU,ZTSYNC,ZTKIL
+2 ;
+3 SET ZTRTN="CHFSCAT^PXVP217"
+4 SET ZTDESC="Correct Service Categories that are HF"
+5 SET ZTIO=""
+6 SET ZTDTH=$HOROLOG
+7 DO ^%ZTLOAD
+8 IF $GET(ZTSK)
DO BMES("""Correct Service Categories that are HF"" has been queued, task number "_ZTSK)
+9 IF '$GET(ZTSK)
DO BMES("ERROR: ""Correct Service Categories that are HF"" failed to queue. Please email the Implementation Team.")
+10 ;
+11 QUIT
+12 ;
PRE ;KIDS Pre install for PX*1*217
+1 DO RMOLDDDS
+2 QUIT
+3 ;
POST ; KIDS Post install for PX*1*217
+1 DO BMES("*** Post install started ***")
+2 ;
+3 ; Update ACR cross-reference on V SKIN TEST file
DO SKACHXR
+4 ; Update AH cross-reference on V SKIN TEST file
DO SKAHXR
+5 ; Set PXV SKIN TEST READING CPT parameter
DO SKCPT
+6 ;Create PXV IMM INVENTORY ALERTS mail group
DO IMMMAILG
+7 ; Set param value for PXV IMM INVENTORY ALERTS
DO SETPAR
+8 ; Update the IMM DEFAULT RESPONSES (920.05) file - Immunizations
DO IMMDEF
+9 ; Update the IMM DEFAULT RESPONSES (920.05) file - Contra/Refusals
DO CONDEF
+10 ; Correct Service Categories that are HF
DO TSKHFSC
+11 ;
+12 DO BMES("*** Post install completed ***")
+13 ;
+14 QUIT
+15 ;
RMOLDDDS ;Remove old data dictionaries.
+1 NEW DIU,TEXT
+2 DO BMES^XPDUTL("Removing old data dictionaries.")
+3 SET DIU(0)=""
+4 FOR DIU=9000010.13,9000010.16,9000010.23,9999999.09,9999999.15,9999999.64
Begin DoDot:1
+5 SET TEXT=" Deleting data dictionary for file # "_DIU
+6 DO MES^XPDUTL(TEXT)
+7 DO EN^DIU2
End DoDot:1
+8 QUIT
+9 ;
SKACHXR ; Update ACR cross-reference on V SKIN TEST file
+1 ;
+2 DO BMES("*** Updating ACR cross-reference on V SKIN TEST file ***")
+3 ;
+4 NEW PXXR,PXRES,PXOUT
+5 SET PXXR("FILE")=9000010.12
+6 SET PXXR("NAME")="ACR"
+7 SET PXXR("TYPE")="MU"
+8 SET PXXR("USE")="A"
+9 SET PXXR("EXECUTION")="R"
+10 SET PXXR("ACTIVITY")="IR"
+11 SET PXXR("SHORT DESCR")="Clinical Reminders index."
+12 SET PXXR("DESCR",1)="This cross-reference builds two indexes, one for finding all patients"
+13 SET PXXR("DESCR",2)="with a particular skin test and one for finding all the skin tests a"
+14 SET PXXR("DESCR",3)="patient has."
+15 SET PXXR("DESCR",4)="The indexes are stored in the Clinical Reminders index global as:"
+16 SET PXXR("DESCR",5)=" ^PXRMINDX(9000010.12,""IP"",SKIN TEST,DFN,DATE,DAS) and"
+17 SET PXXR("DESCR",6)=" ^PXRMINDX(9000010.12,""PI"",DFN,SKIN TEST,DATE,DAS)"
+18 SET PXXR("DESCR",7)="respectively."
+19 SET PXXR("DESCR",8)=" "
+20 SET PXXR("DESCR",9)="Where"
+21 SET PXXR("DESCR",10)=" SKIN TEST is a pointer to file #9999999.28."
+22 SET PXXR("DESCR",11)=" DFN is a pointer to file #2."
+23 SET PXXR("DESCR",12)=" DATE is EVENT DATE AND TIME, if it exists. If it does not, then it is"
+24 SET PXXR("DESCR",13)="VISIT/ADMIT DATE&TIME."
+25 SET PXXR("DESCR",14)=" DAS is the internal entry number of the entry in file #9000010.12."
+26 SET PXXR("DESCR",15)=" "
+27 SET PXXR("DESCR",16)="For all the details, see the Clinical Reminders Index Technical"
+28 SET PXXR("DESCR",17)="Guide/Programmer's Manual."
+29 SET PXXR("DESCR",18)=" "
+30 SET PXXR("SET")="D SVFILE^PXPXRM(9000010.12,.X,.DA)"
+31 SET PXXR("KILL")="D KVFILE^PXPXRM(9000010.12,.X,.DA)"
+32 SET PXXR("WHOLE KILL")="K ^PXRMINDX(9000010.12)"
+33 SET PXXR("VAL",1)=.01
+34 SET PXXR("VAL",1,"SUBSCRIPT")=1
+35 SET PXXR("VAL",1,"COLLATION")="F"
+36 SET PXXR("VAL",2)=.02
+37 SET PXXR("VAL",2,"SUBSCRIPT")=2
+38 SET PXXR("VAL",2,"COLLATION")="F"
+39 SET PXXR("VAL",3)=.03
+40 SET PXXR("VAL",3,"SUBSCRIPT")=3
+41 SET PXXR("VAL",3,"COLLATION")="F"
+42 SET PXXR("VAL",4)=1201
+43 SET PXXR("VAL",4,"COLLATION")="F"
+44 SET PXXR("VAL",5)=.06
+45 SET PXXR("VAL",5,"COLLATION")="F"
+46 DO CREIXN^DDMOD(.PXXR,"k",.PXRES,"PXOUT")
+47 IF $GET(PXRES)
Begin DoDot:1
+48 DO MES("Cross-reference "_$PIECE(PXRES,U,2)_" (#"_$PIECE(PXRES,U,1)_") was updated successfully.")
End DoDot:1
+49 IF $GET(PXRES)=""
Begin DoDot:1
+50 DO MES("*** ERROR: Failed to update cross-reference. ***")
End DoDot:1
+51 QUIT
+52 ;
SKAHXR ; Update AH cross-reference on V SKIN TEST file
+1 ;
+2 DO BMES("*** Updating AH cross-reference on V SKIN TEST file ***")
+3 ;
+4 NEW PXXR,PXRES,PXOUT
+5 SET PXXR("FILE")=9000010.12
+6 SET PXXR("NAME")="AH"
+7 SET PXXR("TYPE")="MU"
+8 SET PXXR("USE")="A"
+9 SET PXXR("EXECUTION")="R"
+10 SET PXXR("ACTIVITY")="IR"
+11 SET PXXR("SHORT DESCR")="Hours between placement and reading"
+12 SET PXXR("DESCR",1)="This cross reference calculates the number of hours between the EVENT "
+13 SET PXXR("DESCR",2)="DATE AND TIME field (#1201) and the DATE READ field (#.06) and stores "
+14 SET PXXR("DESCR",3)="that value in the HOURS READ POST-PLACEMENT field (#1214)."
+15 SET PXXR("SET")="D HR^PXVUTL Q"
+16 SET PXXR("KILL")="D HR^PXVUTL Q"
+17 SET PXXR("WHOLE KILL")="Q"
+18 SET PXXR("VAL",1)=.06
+19 SET PXXR("VAL",1,"COLLATION")="F"
+20 SET PXXR("VAL",2)=1201
+21 SET PXXR("VAL",2,"COLLATION")="F"
+22 SET PXXR("VAL",3)=1214
+23 SET PXXR("VAL",3,"COLLATION")="F"
+24 DO CREIXN^DDMOD(.PXXR,"k",.PXRES,"PXOUT")
+25 IF $GET(PXRES)
Begin DoDot:1
+26 DO MES("Cross-reference "_$PIECE(PXRES,U,2)_" (#"_$PIECE(PXRES,U,1)_") was updated successfully.")
End DoDot:1
+27 IF $GET(PXRES)=""
Begin DoDot:1
+28 DO MES("*** ERROR: Failed to update cross-reference. ***")
End DoDot:1
+29 QUIT
+30 ;
+31 ;
SKCPT ; Set PXV SKIN TEST READING CPT parameter
+1 ;
+2 NEW PXDATE,PXX
+3 ;
+4 DO BMES("*** Setting PXV SKIN TEST READING CPT parameter ***")
+5 ;
+6 ; See if this is the first install after we started pushing out this parameter.
+7 ; We don't want to overwrite the user's settings.
+8 SET PXDATE=3180807
+9 SET PXX=$$INSTALDT^XPDUTL("PX*1.0*217",.PXX)
+10 IF $ORDER(PXX(PXDATE))
Begin DoDot:1
+11 DO MES(" No need to set the parameter, as it was set previously.")
End DoDot:1
QUIT
+12 ;
+13 DO MES(" Setting the parameter to 99211 at the SYS level.")
+14 DO PUT^XPAR("SYS","PXV SKIN TEST READING CPT",1,"99211")
+15 ;
+16 QUIT
+17 ;
+18 ;
IMMMAILG ;Create PXV IMM INVENTORY ALERTS mail group
+1 NEW PXDESC,PXUSERS,PXMG
+2 ;
+3 DO BMES("*** Creating the PXV IMM INVENTORY ALERTS Mail Group ***")
+4 SET PXDESC(1)="This mail group will receive messages when an immunization is running low on"
+5 SET PXDESC(2)="stock."
+6 SET PXUSERS(DUZ)=""
+7 SET PXMG=$$MG^XMBGRP("PXV IMM INVENTORY ALERTS",1,DUZ,1,.PXUSERS,.PXDESC,1)
+8 IF PXMG
DO MES(" Created the mail group (#"_PXMG_").")
+9 IF 'PXMG
DO MES(" Mail Group was not created.")
+10 QUIT
+11 ;
+12 ;
SETPAR ; Set param value for PXV IMM INVENTORY ALERTS
+1 NEW PXVAL,PXERR
+2 DO BMES("Setting PKG value for parameter PXV IMM INVENTORY ALERTS...")
+3 ;
+4 SET PXVAL="YES"
+5 DO EN^XPAR("PKG","PXV IMM INVENTORY ALERTS",1,.PXVAL,.PXERR)
+6 IF +$GET(PXERR)>0
DO MES(" ERROR #"_$PIECE(PXERR,U)_": "_$PIECE(PXERR,U,2))
QUIT
+7 DO MES(" DONE")
+8 QUIT
+9 ;
IMMDEF ; Populate the IMM DEFAULT RESPONSES (920.05) file, Immunizations
+1 ;
+2 NEW PXDOSE,PXFDA,PXI,PXIENS,PXIMM,PXINST,PXLINE,PXNUNITS,PXROUTE,PXSITE,PXUCUM,PXUNITS,PXIEN
+3 ;
+4 DO BMES("*** Populate the IMM DEFAULT RESPONSES (920.05) file - Immunizations ***")
+5 ;
+6 IF $ORDER(^PXV(920.05,0))
IF '$DATA(^XTMP("PXVP217"))
Begin DoDot:1
+7 SET ^XTMP("PXVP217",0)=$$FMADD^XLFDT(DT,60)_"^"_DT
+8 MERGE ^XTMP("PXVP217",920.05)=^PXV(920.05)
End DoDot:1
+9 ;
+10 SET PXINST=$$KSP^XUPARAM("INST")
+11 IF 'PXINST
Begin DoDot:1
+12 DO MES("ERROR: No default Institution. Can't populate file.")
End DoDot:1
QUIT
+13 ;
+14 FOR PXI=2:1
SET PXLINE=$PIECE($TEXT(IMMDATA+PXI),";;",2)
if PXLINE=""
QUIT
Begin DoDot:1
+15 KILL PXFDA,PXIEN
+16 SET PXIMM=$PIECE(PXLINE,U,1)
+17 SET PXROUTE=$PIECE(PXLINE,U,2)
+18 SET PXSITE=$PIECE(PXLINE,U,3)
+19 SET PXDOSE=$PIECE(PXLINE,U,4)
+20 SET PXUNITS=$PIECE(PXLINE,U,5)
+21 SET PXNUNITS=$PIECE(PXLINE,U,6)
+22 ;
+23 IF PXIMM=""
Begin DoDot:2
+24 DO MES("ERROR: Immunization null. Can't populate this entry.")
End DoDot:2
QUIT
+25 SET PXIMM=$ORDER(^AUTTIMM("AVUID",PXIMM,0))
+26 IF 'PXIMM
Begin DoDot:2
+27 DO MES("ERROR: Immunization not found. Can't populate this entry.")
End DoDot:2
QUIT
+28 ;
+29 ;I $D(^PXV(920.05,"AC",PXINST,PXIMM)) D Q
+30 ;. D MES("Default already defined for: "_PXIMM_". Skiping this entry.")
+31 ;
+32 IF PXROUTE'=""
Begin DoDot:2
+33 SET PXROUTE=$ORDER(^PXV(920.2,"AVUID",PXROUTE,0))
+34 IF 'PXROUTE
Begin DoDot:3
+35 DO MES("ERROR: Route not found. Can't populate it for immunization #"_PXIMM_".")
+36 SET PXROUTE=""
End DoDot:3
End DoDot:2
+37 ;
+38 IF PXSITE'=""
Begin DoDot:2
+39 SET PXSITE=$ORDER(^PXV(920.3,"AVUID",PXSITE,0))
+40 IF 'PXSITE
Begin DoDot:3
+41 DO MES("ERROR: Site not found. Can't populate it for immunization #"_PXIMM_".")
+42 SET PXSITE=""
End DoDot:3
End DoDot:2
+43 ;
+44 KILL PXUCUM
+45 IF PXUNITS'=""
Begin DoDot:2
+46 DO UCUMDATA^LEXMUCUM(PXUNITS,.PXUCUM)
+47 SET PXUNITS=$ORDER(PXUCUM(0))
+48 IF 'PXUNITS
Begin DoDot:3
+49 SET PXUNITS=""
+50 DO MES("ERROR: Units not found. Can't populate it for immunization #"_PXIMM_".")
End DoDot:3
End DoDot:2
+51 ;
+52 IF 'PXROUTE
IF 'PXSITE
IF PXDOSE=""
IF PXUNITS=""
IF PXNUNITS=""
QUIT
+53 ;
+54 SET PXIENS="?+1,"
+55 SET PXFDA(920.05,PXIENS,.01)=PXINST
+56 SET PXIENS="?+2,?+1,"
+57 SET PXFDA(920.051,PXIENS,.01)=PXIMM
+58 IF PXROUTE'=""
SET PXFDA(920.051,PXIENS,1302)=PXROUTE
+59 IF PXSITE'=""
SET PXFDA(920.051,PXIENS,1303)=PXSITE
+60 SET PXFDA(920.051,PXIENS,1312)=PXDOSE
+61 IF PXUNITS'=""
SET PXFDA(920.051,PXIENS,1313)=PXUNITS
+62 IF PXNUNITS'=""
SET PXFDA(920.051,PXIENS,1314)=PXNUNITS
+63 KILL ^TMP("DIERR",$JOB)
+64 SET PXIEN(2)=PXIMM
+65 DO UPDATE^DIE("","PXFDA","PXIEN")
+66 IF $DATA(^TMP("DIERR",$JOB))
DO MES("ERROR: Error filing default for Immunization #"_PXIMM_".")
End DoDot:1
+67 QUIT
+68 ;
CONDEF ; Populate the IMM DEFAULT RESPONSES (920.05) file, Contra/Refusals
+1 ;
+2 NEW PXDAYS,PXFDA,PXFILE,PXI,PXIEN,PXIENS,PXINST,PXLINE,PXVUID
+3 ;
+4 DO BMES("*** Populate the IMM DEFAULT RESPONSES (920.05) file - Contraindications/Refusals ***")
+5 ;
+6 SET PXINST=$$KSP^XUPARAM("INST")
+7 IF 'PXINST
Begin DoDot:1
+8 DO MES("ERROR: No default Institution. Can't populate file.")
End DoDot:1
QUIT
+9 ;
+10 FOR PXI=2:1
SET PXLINE=$PIECE($TEXT(CONDATA+PXI),";;",2)
if PXLINE=""
QUIT
Begin DoDot:1
+11 KILL PXFDA,PXIEN
+12 SET PXFILE=$PIECE(PXLINE,U,1)
+13 SET PXVUID=$PIECE(PXLINE,U,3)
+14 SET PXDAYS=$PIECE(PXLINE,U,4)
+15 ;
+16 IF PXFILE=""!(PXVUID="")!(PXDAYS="")
Begin DoDot:2
+17 DO MES("ERROR: File #, VUID, and/or Days is null. Can't populate this entry.")
End DoDot:2
QUIT
+18 SET PXIEN=$ORDER(^PXV(PXFILE,"AVUID",PXVUID,0))
+19 IF 'PXIEN
Begin DoDot:2
+20 DO MES("ERROR: Contra/Refusal not found. Can't populate this entry.")
End DoDot:2
QUIT
+21 ;
+22 IF PXDAYS<0!(PXDAYS>10000)
Begin DoDot:2
+23 DO MES("ERROR: Days '"_PXDAYS_"' is not appropriate value. Skipping.")
End DoDot:2
QUIT
+24 ;
+25 SET PXIENS="?+1,"
+26 SET PXFDA(920.05,PXIENS,.01)=PXINST
+27 SET PXIENS="?+2,?+1,"
+28 SET PXFDA(920.052,PXIENS,.01)=PXIEN_";PXV("_PXFILE_","
+29 SET PXFDA(920.052,PXIENS,.02)=PXDAYS
+30 KILL ^TMP("DIERR",$JOB)
+31 DO UPDATE^DIE("","PXFDA")
+32 IF $DATA(^TMP("DIERR",$JOB))
DO MES("ERROR: Error filing default for Contra/Refusal #"_PXIEN_";PXV("_PXFILE_",")
End DoDot:1
+33 QUIT
+34 ;
BMES(STR) ;
+1 ; Write string
+2 DO BMES^XPDUTL($$TRIM^XLFSTR($$CJ^XLFSTR(STR,$GET(IOM,80)),"R"," "))
+3 QUIT
MES(STR) ;
+1 ; Write string
+2 DO MES^XPDUTL($$TRIM^XLFSTR($$CJ^XLFSTR(STR,$GET(IOM,80)),"R"," "))
+3 QUIT
+4 ;
+5 ;
IMMDATA ;Data to populate the IMM DEFAULT RESPONSES (920.05) file
+1 ;;VUID^ROUTE^SITE^DOSE^UNITS^NON-STANDARD UNITS
+2 ;;5197809^4500642^^2^^Tablets
+3 ;;5197633^4706241^^.5^mL^
+4 ;;5197833^4706241^^^mL^
+5 ;;5197623^5197549^^^mL^
+6 ;;5245875^4500642^^90^mL^
+7 ;;5333977^4706241^^.5^mL^
+8 ;;5333973^4706241^^.5^mL^
+9 ;;5333969^4706241^^^mL^
+10 ;;5333975^4706241^^.5^mL^
+11 ;;5333971^4706241^^.3^mL^
+12 ;;5330716^4706258^^.5^mL^
+13 ;;5197639^4706241^^.5^mL^
+14 ;;5197625^4706241^^.5^mL^
+15 ;;5197739^4706241^^.5^mL^
+16 ;;5327721^4706241^^.5^mL^
+17 ;;5197747^4706241^^.5^mL^
+18 ;;5197765^4706241^^.5^mL^
+19 ;;5197783^4706241^^.5^mL^
+20 ;;5335437^4706241^^1^mL^
+21 ;;5197679^4706241^^1^mL^
+22 ;;5197709^4706241^^.5^mL^
+23 ;;5197735^4706241^^1^mL^
+24 ;;5197607^4706241^^.5^mL^
+25 ;;5197661^4706241^^^mL^
+26 ;;5197663^4706241^^1^mL^
+27 ;;5258667^4706241^^.5^mL^
+28 ;;5197673^4706241^^.5^mL^
+29 ;;5197671^4706241^^.5^mL^
+30 ;;5197687^4706241^^.5^mL^
+31 ;;5215778^4706241^^.5^mL^
+32 ;;5197831^4706241^^.5^mL^
+33 ;;5333949^4706241^^.5^mL^
+34 ;;5197793^4706241^^.5^mL^
+35 ;;5331733^4706241^^.7^mL^
+36 ;;5245869^4706241^^.5^mL^
+37 ;;5258486^4706241^^.5^mL^
+38 ;;5197829^4706241^^.5^mL^
+39 ;;5197819^4706241^^.5^mL^
+40 ;;5215772^4706241^^.5^mL^
+41 ;;5215780^4706239^^.1^mL^
+42 ;;5197817^4706252^^.2^mL^
+43 ;;5197827^4706241^^.5^mL^
+44 ;;5254431^4706241^^.5^mL^
+45 ;;5197805^4706241^^.5^mL^
+46 ;;5197803^4706241^^.5^mL^
+47 ;;5197811^4706239^^.1^mL^
+48 ;;5245607^4706241^^.5^mL^
+49 ;;5197611^^^.5^mL^
+50 ;;5197791^4706241^^.5^mL^
+51 ;;5215782^4706241^^.5^mL^
+52 ;;5215774^4706241^^.5^mL^
+53 ;;5197795^4706241^^.5^mL^
+54 ;;5197755^4706241^^.5^mL^
+55 ;;5333947^4706241^^.5^mL^
+56 ;;5197597^4706258^^.5^mL^
+57 ;;5197725^4706258^^.5^mL^
+58 ;;5197789^4706241^^.5^mL^
+59 ;;5197645^4706241^^.5^mL^
+60 ;;5248397^4706241^^1^mL^
+61 ;;5248399^4706241^^1^mL^
+62 ;;5197763^4500642^^1^mL^
+63 ;;5197759^4500642^^2^mL^
+64 ;;5333951^^^^mL^
+65 ;;5197609^4706241^^.5^mL^
+66 ;;5197753^4706241^^.5^mL^
+67 ;;5197757^4706241^^.5^mL^
+68 ;;5197635^4500642^^1^^Capsules
+69 ;;5197729^4706241^^.5^mL^
+70 ;;5197695^5197549^^2.5^uL^
+71 ;;5197627^4706258^^.5^mL^
+72 ;;5197649^4706258^^.5^mL^
+73 ;;5251135^^^.5^mL^
+74 ;;5197767^4706258^^.65^mL^
+75 ;;5258663^4706241^^.5^mL^
+76 ;;5339688^4706241^^.5^mL^
+77 ;;5339690^4706241^^.5^mL^
+78 ;;5339697^4706241^^.3^mL^
+79 ;;5339699^4706241^^.2^mL^
+80 ;;5339701^4706241^^.2^mL^
+81 ;;5340643^4706241^^.5^mL^
+82 ;;5339892^4706241^^1^mL^
+83 ;;5342690^^^.5^mL^
+84 ;;5342688^^^^mL^
+85 ;;5342684^4706241^^.25^mL^
+86 ;;5342686^4706241^^.5^mL^
+87 ;;
CONDATA ;Data to populate the IMM DEFAULT RESPONSES (920.05) file
+1 ;;FILE^NAME^VUID^WARN UNTIL DAYS
+2 ;;920.4^CURRENT IMMUNODEFICIENCY^5198139^90
+3 ;;920.4^CURRENT PREGNANCY^5198141^280
+4 ;;920.4^ENCEPHALOPATHY PREVIOUS DOSE^5198127^0
+5 ;;920.4^HX ARTHUS REACTION^5198135^0
+6 ;;920.4^HX INTUSSUSCEPTION^5198125^0
+7 ;;920.4^LATEX ALLERGY^5198121^0
+8 ;;920.4^SEVERE ALLERGY EGGS^5198107^0
+9 ;;920.4^SEVERE GELATIN ALLERGY^5251118^0
+10 ;;920.4^SEVERE NEOMYCIN ALLERGY^5198111^0
+11 ;;920.4^SEVERE POLYMYXIN B ALLERGY^5198123^0
+12 ;;920.4^SEVERE REACTION PREVIOUS DOSE^5198117^0
+13 ;;920.4^SEVERE STREPTOMYCIN ALLERGY^5198113^0
+14 ;;920.4^SEVERE YEAST ALLERGY^5237393^0
+15 ;;920.4^CONCURRENT TB SKIN TEST^5198101^7
+16 ;;920.4^CURRENT ACUTE ILLNESS^5198131^7
+17 ;;920.4^CURRENT FEVER^5198129^7
+18 ;;920.4^THROMBOCYTOPENIA^5198143^30
+19 ;;920.4^UNSTABLE/EVOLVING NEURO DZ^5198137^30
+20 ;;920.5^OTHER^5198154^30
+21 ;;920.5^PARENTAL DECISION^5198150^365
+22 ;;920.5^PATIENT DECISION^5198156^30
+23 ;;920.5^RELIGIOUS EXEMPTION^5198152^365
+24 ;;