PX10118P ;BPFO/ESW;POST INIT FOR PATCH 118;10-MAR-2001 ; 5/15/02 11:27am
;;1.0;PCE PATIENT CARE ENCOUNTER;**118**;Mar, 10 2002
;
; This is a clean up routine following PX*1.0*117
;
POST ;Main entry point of post init routine
N X
;Delete incomplete V CPT records
S X(1)=" "
S X(2)="Post install is ready for queuing."
S X(3)=" "
S X(4)="The queued task will perform the following:"
S X(5)="1. V CPT records without the CPT (#.01) field defined will be deleted."
S X(6)=" "
S X(7)="2. Overwritten V CPT records will be updated as follows:"
S X(8)=" -PROVIDER NARRATIVE (#.04) field will be populated based on the CPT"
S X(9)=" value of the V CPT record replacing the existing incorrect pointer"
S X(10)=" to the PROVIDER NARRATIVE (#9999999.27) file."
S X(11)=" -AUDIT TRIAL (#80102) field will be updated to its previous value."
S X(12)=" -ENCOUNTER PROVIDER (#1204) field will be removed if no match exists"
S X(13)=" with pointers from V PROVIDER (#9000010.06) file to the evaluated VISIT."
S X(14)=" -If the CPT code is the same found in TYPE OF VISIT (#357.69) field"
S X(15)=" then the QUANTITY (#.16) field will be set to one."
S X(16)="3. Partially created V CPT records with CPT, PATIENT NAME and VISIT will be"
S X(17)=" populated with PROVIDER NARRATIVE (#.04) and QUANTITY (#.16) only."
S X(18)="4. V CPT records with not a valid CPT code, if any, will be identified"
S X(19)="in ^XTMP(""NOT A CPT CODE"") and marked in the COMMENTS field with"
S X(20)="'PX*1.0*118/NOCPT' value for individual investigation."
S X(21)=" "
S X(22)="All updated V CPT records will be populated with 'PX*1.0*118' value"
S X(23)="in the COMMENTS (#81101) field for reference purposes."
S X(24)=" "
D MES^XPDUTL(.X) K X
EN1 ;Queue clean up routine
; Queue time is post install question POS1 (use NOW if not defined)
; If queued using entry point QUEUE, queue time will be prompted for
N ZTSK,ZTRTN,ZTIO,ZTDESC,ZTDTH
S X(1)=" "
S X(2)="Routine to clean up V CPT (#9000010.18) file will be queued as requested."
S X(3)=" "
D MES^XPDUTL(.X) K X
I $D(^XTMP("PX10118P",2)) D Q
.S X(1)=" "
.S X(2)="*****"
.S X(3)="Post init appears to be running. If it is not, delete the"
.S X(4)="node ^XTMP(""PX10118P"",2) and use line tag QUEUE^PX10118P"
.S X(5)="to [re]start the process."
.S X(6)="*****"
.S X(7)=" "
.D MES^XPDUTL(.X) K X
I $D(^XTMP("PX10118P",3)) D Q
.S X(1)=" "
.S X(2)="*****"
.S X(3)="Post init appears to have run to completion on "_$$FMTE^XLFDT(^XTMP("PX10118P",3))_"."
.S X(4)="If it did not, delete the node ^XTMP(""PX10118P"",3) and use"
.S X(5)="line tag QUEUE^PX10118P to [re]start the process."
.S X(6)="*****"
.S X(7)=" "
.D MES^XPDUTL(.X) K X
S ZTRTN="SET^PX10118P",ZTIO=""
S ZTDTH=$H S X=+$G(XPDQUES("POS1")) S:(X) ZTDTH=$$FMTH^XLFDT(X) K:$G(PX10118P) ZTDTH
S ZTDESC="Clean up of V CPT file(#9000010.18)"
D ^%ZTLOAD
I $G(ZTSK) D MES^XPDUTL("Task #"_ZTSK_" queued to start "_$$HTE^XLFDT($G(ZTSK("D")))) I 1
E D MES^XPDUTL("***** UNABLE TO QUEUE CLEAN UP V CPT *****")
Q
;
SET ; This is the post-init to clean V CPT file
N CIENCNT,DATIM,CIEN,QFLG,Y,XMDUZ,XMTEXT,XMY,LASTCIEN,CIENTOT,CIENDEL,NOCPT
S DATIM=$$DT^XLFDT()
S ^XTMP("PX10118P",0)=$$FMADD^XLFDT(DATIM,30)_"^"_DATIM
S ^XTMP("PX10118P",2)=1
S QFLG=0
S Y=$G(^XTMP("PX10118P",1))
S (CIEN,LASTCIEN)=+Y
I CIEN=0 S CIEN="A" S (NOCPT,CIENCNT,CIENTOT,CIENDEL)=0
E S CIENCNT=+$P(Y,U,2),CIENTOT=+$P(Y,U,3),CIENDEL=+$P(Y,U,4),NOCPT=$P(Y,U,5)
F S CIEN=$O(^AUPNVCPT(CIEN),-1) Q:'CIEN D Q:QFLG
.S CIENTOT=CIENTOT+1
.S LASTCIEN=CIEN
.N VER,VCD,CPV S VCD="VA LOCAL CODE SELECTED"
.S CPV=$P($G(^AUPNVCPT(CIEN,0)),U)
.;verify if a correct pointer to CPT file
.I CPV'="" S VER=$$CPT^ICPTCOD(CPV) I $P(VER,U,2)'=VCD&(VER<1) D Q
..I '$D(^XTMP("NOT A CPT CODE")) S ^XTMP("NOT A CPT CODE",0)=$$FMADD^XLFDT(DATIM,30)_"^"_DATIM
..M ^XTMP("NOT A CPT CODE",$J,CIEN)=^AUPNVCPT(CIEN)
..S $P(^AUPNVCPT(CIEN,811),U)="PX*1.0*118/NOCPT "_$P($G(^AUPNVCPT(CIEN,811)),U)
..S NOCPT=NOCPT+1
.I $L($P($G(^AUPNVCPT(CIEN,801)),U,2),"-A")>2!'$P($G(^AUPNVCPT(CIEN,0)),U,4)!'$P($G(^(0)),U) D
..I '$D(^XTMP("CLEAN V CPT")) S ^XTMP("CLEAN V CPT",0)=$$FMADD^XLFDT(DATIM,30)_"^"_DATIM
..M ^XTMP("CLEAN V CPT",$J,CIEN)=^AUPNVCPT(CIEN)
..S CIENCNT=CIENCNT+1
..;delete icorrectly created record
..I '$P($G(^AUPNVCPT(CIEN,0)),U) S CIENDEL=CIENDEL+1 D Q
...N DIK,DA S DIK="^AUPNVCPT(",DA=CIEN D ^DIK
..;verify/update AUDIT TRIAL
..N GG,FR,PP,FRS S GG=$P($G(^AUPNVCPT(CIEN,801)),U,2) I $L(GG,"-A")>2 D
...F PP=1:1 S:$P(GG,";",PP)["-A" FRS(PP)="" I $O(FRS(""),-1)>1 S GG=$P(GG,";",1,PP-1)_";" Q
...S $P(^AUPNVCPT(CIEN,801),U,2)=GG
..;verify PROVIDER NARRATIVE
..N PN,PNVI,ENC S PN=$P(^AUPNVCPT(CIEN,0),U,4)
..S PNVI=$$PRVNARR($P(^AUPNVCPT(CIEN,0),U)) ;prov narr
..I PNVI'=PN S $P(^AUPNVCPT(CIEN,0),U,4)=PNVI
..;verify QUANTITY
..;I $P(^AUPNVCPT(CIEN,0),U,16)="" S $P(^(0),U,16)=1 ;QUANTITY
..I $P(^AUPNVCPT(CIEN,0),U,16)'=1,$D(^IBE(357.69,+$P(^AUPNVCPT(CIEN,0),U))) S $P(^AUPNVCPT(CIEN,0),U,16)=1 ;DBIA #: 1906
..;verify ENCOUNTER PROVIDER (for CPT)
..I $P($G(^AUPNVCPT(CIEN,12)),U,4) S ENC=$P(^(12),U,4) D
...N PRV,VST,FKL S VST=+$P(^AUPNVCPT(CIEN,0),U,3),PRV="",FKL="" D
....F S PRV=$O(^AUPNVPRV("AD",VST,PRV)) Q:PRV="" D Q:FKL
.....I $P(^AUPNVPRV(PRV,0),U)=ENC S FKL=1
....I 'FKL S $P(^AUPNVCPT(CIEN,12),U,4)=""
..;set up COMMENTS
..S $P(^AUPNVCPT(CIEN,811),U)="PX*1.0*118 "_$P($G(^AUPNVCPT(CIEN,811)),U)
.I '(CIENCNT#100) S QFLG=$$S^%ZTLOAD("CIEN: "_CIEN)
S ^XTMP("PX10118P",1)=LASTCIEN_U_CIENCNT_U_CIENTOT_U_CIENDEL_U_NOCPT
K ^XTMP("PX10118P",2)
S DATIM=$$NOW^XLFDT()
N ZTREQ,ZTSTOP
I QFLG D I 1
.S ZTSTOP=1
.S Y=$$S^%ZTLOAD("STOPPED PROCESSING AT CIEN "_LASTCIEN)
E D
.S ^XTMP("PX10118P",3)=DATIM
.S ZTREQ="@"
S XMSUB="PX*1.0*118 post init has run to completion."
S:(QFLG) XMSUB="PX*1.0*118 post init was asked to stop."
K ^TMP($J,"PX10118P")
S ^TMP($J,"PX10118P",1,0)="Routine to clean up V CPT file"
I QFLG D D FIN Q
.S ^TMP($J,"PX10118P",2,0)="was asked to stop on "_$$FMTE^XLFDT(DATIM)_"."
.S ^TMP($J,"PX10118P",3,0)=" "
.S ^TMP($J,"PX10118P",4,0)="Use the entry point QUEUE^PX10118P to resume clean up."
S ^TMP($J,"PX10118P",2,0)="ran to completion on "_$$FMTE^XLFDT(DATIM)_"."
S ^TMP($J,"PX10118P",3,0)="Post init routine PX10118P can be deleted."
S ^TMP($J,"PX10118P",4,0)="Number of all scanned V CPT records: "_$P(^XTMP("PX10118P",1),U,3)
S ^TMP($J,"PX10118P",5,0)="Number of cleaned/updated records: "_$P(^XTMP("PX10118P",1),U,2)
S ^TMP($J,"PX10118P",6,0)="including deleted records: "_$P(^XTMP("PX10118P",1),U,4)
S ^TMP($J,"PX10118P",7,0)=" "
I $D(^XTMP("NOT A CPT CODE")) D
.S ^TMP($J,"PX10118P",8,0)=$P(^XTMP("PX10118P",1),U,5)_" records with not valid CPT code were identified."
.S ^TMP($J,"PX10118P",9,0)="They have to be investigated and addressed individually."
FIN S XMDUZ="Patch PX*1.0*118"
S XMTEXT="^TMP($J,""PX10118P"","
S XMY(DUZ)=""
D ^XMD
K ^TMP($J,"PX10118P")
S ZTREQ="@"
Q
;
QUEUE ;Line tag for field to use to requeue clean up
N X,PX10118P
S PX10118P=1
D EN1
Q
PRVNARR(CPT) ;calculate provider narrative
N PNV S PNV=$$EXTTEXT^PXUTL1(CPT,1,81,2) ;text
Q +$$PROVNARR^PXAPI($G(PNV),9000010.18) ;prov narr
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPX10118P 7390 printed Dec 13, 2024@02:25:31 Page 2
PX10118P ;BPFO/ESW;POST INIT FOR PATCH 118;10-MAR-2001 ; 5/15/02 11:27am
+1 ;;1.0;PCE PATIENT CARE ENCOUNTER;**118**;Mar, 10 2002
+2 ;
+3 ; This is a clean up routine following PX*1.0*117
+4 ;
POST ;Main entry point of post init routine
+1 NEW X
+2 ;Delete incomplete V CPT records
+3 SET X(1)=" "
+4 SET X(2)="Post install is ready for queuing."
+5 SET X(3)=" "
+6 SET X(4)="The queued task will perform the following:"
+7 SET X(5)="1. V CPT records without the CPT (#.01) field defined will be deleted."
+8 SET X(6)=" "
+9 SET X(7)="2. Overwritten V CPT records will be updated as follows:"
+10 SET X(8)=" -PROVIDER NARRATIVE (#.04) field will be populated based on the CPT"
+11 SET X(9)=" value of the V CPT record replacing the existing incorrect pointer"
+12 SET X(10)=" to the PROVIDER NARRATIVE (#9999999.27) file."
+13 SET X(11)=" -AUDIT TRIAL (#80102) field will be updated to its previous value."
+14 SET X(12)=" -ENCOUNTER PROVIDER (#1204) field will be removed if no match exists"
+15 SET X(13)=" with pointers from V PROVIDER (#9000010.06) file to the evaluated VISIT."
+16 SET X(14)=" -If the CPT code is the same found in TYPE OF VISIT (#357.69) field"
+17 SET X(15)=" then the QUANTITY (#.16) field will be set to one."
+18 SET X(16)="3. Partially created V CPT records with CPT, PATIENT NAME and VISIT will be"
+19 SET X(17)=" populated with PROVIDER NARRATIVE (#.04) and QUANTITY (#.16) only."
+20 SET X(18)="4. V CPT records with not a valid CPT code, if any, will be identified"
+21 SET X(19)="in ^XTMP(""NOT A CPT CODE"") and marked in the COMMENTS field with"
+22 SET X(20)="'PX*1.0*118/NOCPT' value for individual investigation."
+23 SET X(21)=" "
+24 SET X(22)="All updated V CPT records will be populated with 'PX*1.0*118' value"
+25 SET X(23)="in the COMMENTS (#81101) field for reference purposes."
+26 SET X(24)=" "
+27 DO MES^XPDUTL(.X)
KILL X
EN1 ;Queue clean up routine
+1 ; Queue time is post install question POS1 (use NOW if not defined)
+2 ; If queued using entry point QUEUE, queue time will be prompted for
+3 NEW ZTSK,ZTRTN,ZTIO,ZTDESC,ZTDTH
+4 SET X(1)=" "
+5 SET X(2)="Routine to clean up V CPT (#9000010.18) file will be queued as requested."
+6 SET X(3)=" "
+7 DO MES^XPDUTL(.X)
KILL X
+8 IF $DATA(^XTMP("PX10118P",2))
Begin DoDot:1
+9 SET X(1)=" "
+10 SET X(2)="*****"
+11 SET X(3)="Post init appears to be running. If it is not, delete the"
+12 SET X(4)="node ^XTMP(""PX10118P"",2) and use line tag QUEUE^PX10118P"
+13 SET X(5)="to [re]start the process."
+14 SET X(6)="*****"
+15 SET X(7)=" "
+16 DO MES^XPDUTL(.X)
KILL X
End DoDot:1
QUIT
+17 IF $DATA(^XTMP("PX10118P",3))
Begin DoDot:1
+18 SET X(1)=" "
+19 SET X(2)="*****"
+20 SET X(3)="Post init appears to have run to completion on "_$$FMTE^XLFDT(^XTMP("PX10118P",3))_"."
+21 SET X(4)="If it did not, delete the node ^XTMP(""PX10118P"",3) and use"
+22 SET X(5)="line tag QUEUE^PX10118P to [re]start the process."
+23 SET X(6)="*****"
+24 SET X(7)=" "
+25 DO MES^XPDUTL(.X)
KILL X
End DoDot:1
QUIT
+26 SET ZTRTN="SET^PX10118P"
SET ZTIO=""
+27 SET ZTDTH=$HOROLOG
SET X=+$GET(XPDQUES("POS1"))
if (X)
SET ZTDTH=$$FMTH^XLFDT(X)
if $GET(PX10118P)
KILL ZTDTH
+28 SET ZTDESC="Clean up of V CPT file(#9000010.18)"
+29 DO ^%ZTLOAD
+30 IF $GET(ZTSK)
DO MES^XPDUTL("Task #"_ZTSK_" queued to start "_$$HTE^XLFDT($GET(ZTSK("D"))))
IF 1
+31 IF '$TEST
DO MES^XPDUTL("***** UNABLE TO QUEUE CLEAN UP V CPT *****")
+32 QUIT
+33 ;
SET ; This is the post-init to clean V CPT file
+1 NEW CIENCNT,DATIM,CIEN,QFLG,Y,XMDUZ,XMTEXT,XMY,LASTCIEN,CIENTOT,CIENDEL,NOCPT
+2 SET DATIM=$$DT^XLFDT()
+3 SET ^XTMP("PX10118P",0)=$$FMADD^XLFDT(DATIM,30)_"^"_DATIM
+4 SET ^XTMP("PX10118P",2)=1
+5 SET QFLG=0
+6 SET Y=$GET(^XTMP("PX10118P",1))
+7 SET (CIEN,LASTCIEN)=+Y
+8 IF CIEN=0
SET CIEN="A"
SET (NOCPT,CIENCNT,CIENTOT,CIENDEL)=0
+9 IF '$TEST
SET CIENCNT=+$PIECE(Y,U,2)
SET CIENTOT=+$PIECE(Y,U,3)
SET CIENDEL=+$PIECE(Y,U,4)
SET NOCPT=$PIECE(Y,U,5)
+10 FOR
SET CIEN=$ORDER(^AUPNVCPT(CIEN),-1)
if 'CIEN
QUIT
Begin DoDot:1
+11 SET CIENTOT=CIENTOT+1
+12 SET LASTCIEN=CIEN
+13 NEW VER,VCD,CPV
SET VCD="VA LOCAL CODE SELECTED"
+14 SET CPV=$PIECE($GET(^AUPNVCPT(CIEN,0)),U)
+15 ;verify if a correct pointer to CPT file
+16 IF CPV'=""
SET VER=$$CPT^ICPTCOD(CPV)
IF $PIECE(VER,U,2)'=VCD&(VER<1)
Begin DoDot:2
+17 IF '$DATA(^XTMP("NOT A CPT CODE"))
SET ^XTMP("NOT A CPT CODE",0)=$$FMADD^XLFDT(DATIM,30)_"^"_DATIM
+18 MERGE ^XTMP("NOT A CPT CODE",$JOB,CIEN)=^AUPNVCPT(CIEN)
+19 SET $PIECE(^AUPNVCPT(CIEN,811),U)="PX*1.0*118/NOCPT "_$PIECE($GET(^AUPNVCPT(CIEN,811)),U)
+20 SET NOCPT=NOCPT+1
End DoDot:2
QUIT
+21 IF $LENGTH($PIECE($GET(^AUPNVCPT(CIEN,801)),U,2),"-A")>2!'$PIECE($GET(^AUPNVCPT(CIEN,0)),U,4)!'$PIECE($GET(^(0)),U)
Begin DoDot:2
+22 IF '$DATA(^XTMP("CLEAN V CPT"))
SET ^XTMP("CLEAN V CPT",0)=$$FMADD^XLFDT(DATIM,30)_"^"_DATIM
+23 MERGE ^XTMP("CLEAN V CPT",$JOB,CIEN)=^AUPNVCPT(CIEN)
+24 SET CIENCNT=CIENCNT+1
+25 ;delete icorrectly created record
+26 IF '$PIECE($GET(^AUPNVCPT(CIEN,0)),U)
SET CIENDEL=CIENDEL+1
Begin DoDot:3
+27 NEW DIK,DA
SET DIK="^AUPNVCPT("
SET DA=CIEN
DO ^DIK
End DoDot:3
QUIT
+28 ;verify/update AUDIT TRIAL
+29 NEW GG,FR,PP,FRS
SET GG=$PIECE($GET(^AUPNVCPT(CIEN,801)),U,2)
IF $LENGTH(GG,"-A")>2
Begin DoDot:3
+30 FOR PP=1:1
if $PIECE(GG,";",PP)["-A"
SET FRS(PP)=""
IF $ORDER(FRS(""),-1)>1
SET GG=$PIECE(GG,";",1,PP-1)_";"
QUIT
+31 SET $PIECE(^AUPNVCPT(CIEN,801),U,2)=GG
End DoDot:3
+32 ;verify PROVIDER NARRATIVE
+33 NEW PN,PNVI,ENC
SET PN=$PIECE(^AUPNVCPT(CIEN,0),U,4)
+34 ;prov narr
SET PNVI=$$PRVNARR($PIECE(^AUPNVCPT(CIEN,0),U))
+35 IF PNVI'=PN
SET $PIECE(^AUPNVCPT(CIEN,0),U,4)=PNVI
+36 ;verify QUANTITY
+37 ;I $P(^AUPNVCPT(CIEN,0),U,16)="" S $P(^(0),U,16)=1 ;QUANTITY
+38 ;DBIA #: 1906
IF $PIECE(^AUPNVCPT(CIEN,0),U,16)'=1
IF $DATA(^IBE(357.69,+$PIECE(^AUPNVCPT(CIEN,0),U)))
SET $PIECE(^AUPNVCPT(CIEN,0),U,16)=1
+39 ;verify ENCOUNTER PROVIDER (for CPT)
+40 IF $PIECE($GET(^AUPNVCPT(CIEN,12)),U,4)
SET ENC=$PIECE(^(12),U,4)
Begin DoDot:3
+41 NEW PRV,VST,FKL
SET VST=+$PIECE(^AUPNVCPT(CIEN,0),U,3)
SET PRV=""
SET FKL=""
Begin DoDot:4
+42 FOR
SET PRV=$ORDER(^AUPNVPRV("AD",VST,PRV))
if PRV=""
QUIT
Begin DoDot:5
+43 IF $PIECE(^AUPNVPRV(PRV,0),U)=ENC
SET FKL=1
End DoDot:5
if FKL
QUIT
+44 IF 'FKL
SET $PIECE(^AUPNVCPT(CIEN,12),U,4)=""
End DoDot:4
End DoDot:3
+45 ;set up COMMENTS
+46 SET $PIECE(^AUPNVCPT(CIEN,811),U)="PX*1.0*118 "_$PIECE($GET(^AUPNVCPT(CIEN,811)),U)
End DoDot:2
+47 IF '(CIENCNT#100)
SET QFLG=$$S^%ZTLOAD("CIEN: "_CIEN)
End DoDot:1
if QFLG
QUIT
+48 SET ^XTMP("PX10118P",1)=LASTCIEN_U_CIENCNT_U_CIENTOT_U_CIENDEL_U_NOCPT
+49 KILL ^XTMP("PX10118P",2)
+50 SET DATIM=$$NOW^XLFDT()
+51 NEW ZTREQ,ZTSTOP
+52 IF QFLG
Begin DoDot:1
+53 SET ZTSTOP=1
+54 SET Y=$$S^%ZTLOAD("STOPPED PROCESSING AT CIEN "_LASTCIEN)
End DoDot:1
IF 1
+55 IF '$TEST
Begin DoDot:1
+56 SET ^XTMP("PX10118P",3)=DATIM
+57 SET ZTREQ="@"
End DoDot:1
+58 SET XMSUB="PX*1.0*118 post init has run to completion."
+59 if (QFLG)
SET XMSUB="PX*1.0*118 post init was asked to stop."
+60 KILL ^TMP($JOB,"PX10118P")
+61 SET ^TMP($JOB,"PX10118P",1,0)="Routine to clean up V CPT file"
+62 IF QFLG
Begin DoDot:1
+63 SET ^TMP($JOB,"PX10118P",2,0)="was asked to stop on "_$$FMTE^XLFDT(DATIM)_"."
+64 SET ^TMP($JOB,"PX10118P",3,0)=" "
+65 SET ^TMP($JOB,"PX10118P",4,0)="Use the entry point QUEUE^PX10118P to resume clean up."
End DoDot:1
DO FIN
QUIT
+66 SET ^TMP($JOB,"PX10118P",2,0)="ran to completion on "_$$FMTE^XLFDT(DATIM)_"."
+67 SET ^TMP($JOB,"PX10118P",3,0)="Post init routine PX10118P can be deleted."
+68 SET ^TMP($JOB,"PX10118P",4,0)="Number of all scanned V CPT records: "_$PIECE(^XTMP("PX10118P",1),U,3)
+69 SET ^TMP($JOB,"PX10118P",5,0)="Number of cleaned/updated records: "_$PIECE(^XTMP("PX10118P",1),U,2)
+70 SET ^TMP($JOB,"PX10118P",6,0)="including deleted records: "_$PIECE(^XTMP("PX10118P",1),U,4)
+71 SET ^TMP($JOB,"PX10118P",7,0)=" "
+72 IF $DATA(^XTMP("NOT A CPT CODE"))
Begin DoDot:1
+73 SET ^TMP($JOB,"PX10118P",8,0)=$PIECE(^XTMP("PX10118P",1),U,5)_" records with not valid CPT code were identified."
+74 SET ^TMP($JOB,"PX10118P",9,0)="They have to be investigated and addressed individually."
End DoDot:1
FIN SET XMDUZ="Patch PX*1.0*118"
+1 SET XMTEXT="^TMP($J,""PX10118P"","
+2 SET XMY(DUZ)=""
+3 DO ^XMD
+4 KILL ^TMP($JOB,"PX10118P")
+5 SET ZTREQ="@"
+6 QUIT
+7 ;
QUEUE ;Line tag for field to use to requeue clean up
+1 NEW X,PX10118P
+2 SET PX10118P=1
+3 DO EN1
+4 QUIT
PRVNARR(CPT) ;calculate provider narrative
+1 ;text
NEW PNV
SET PNV=$$EXTTEXT^PXUTL1(CPT,1,81,2)
+2 ;prov narr
QUIT +$$PROVNARR^PXAPI($GET(PNV),9000010.18)