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

SROCVER.m

Go to the documentation of this file.
  1. SROCVER ;BIR/SJA - CODE SET VERSIONING UTILITY ;16 Oct 2013 3:23 PM
  1. ;;3.0;Surgery;**116,177**;24 Jun 93;Build 89
  1. ;
  1. ;Reference to $$CPT^ICPTCOD supported by DBIA #1995
  1. ;Reference to ^TMP("CSLSUR1" supported by DBIA #3498
  1. ;Reference to $$CODEC^ICDEX supported by DBIA #5747
  1. ;
  1. VALIDAT N ATTD,SRBB,SRCC,DLN,SRII,SRJJ,SLN,OCOD,SRAA,SRCODE,SRDATE,SRMOD,SRND0,SRND1,SRND34,SRNON,SRJ,SROP,SRPD,SRT,SRY,SRX,SRX1,SRYY,XMY,Y
  1. K ^TMP("SRCVER",$J) S $P(DLN,"-",78)=""
  1. S SRTN=$S($D(SRTN):SRTN,1:DA),SRND0=$G(^SRF(SRTN,0)),SROP=$G(^SRF(SRTN,"OP")),SRND1=$G(^SRF(SRTN,.1)),SRNON=$G(^SRF(SRTN,"NON"))
  1. S SRPD=$S($D(^SRF(SRTN,"NON")):$P(SRNON,"^",6),1:$P(SRND1,"^",4)),ATTD=$S($D(^SRF(SRTN,"NON")):$P(SRNON,"^",7),1:$P(SRND1,"^",13)),SRND34=$G(^SRF(SRTN,34))
  1. S SRDATE=$S($P(SRND0,"^",9):$P(SRND0,"^",9),1:DT)
  1. ;
  1. S SRCODE=$P(SROP,"^",2) I SRCODE S SRT=$$CPT^ICPTCOD(SRCODE,SRDATE) I $P(SRT,"^",7)=0 S ^TMP("SRCVER",$J,"1;!;PRINCIPAL CPT CODE",$P(SRT,"^",2))=SRCODE D
  1. .S (SRJJ,SRII)=0 F S SRII=$O(^SRF(SRTN,"OPMOD",SRII)) Q:'SRII S SRMOD="" S (Y,SRT)=$P($G(^SRF(SRTN,"OPMOD",SRII,0)),"^") D DISPLAY^SROMOD S SRMOD=$S($G(SRMOD):SRMOD_","_Y,1:Y) D
  1. ..S ^TMP("SRCVER",$J,"1_1;; CPT MODIFIER",SRMOD)=SRT_"^"_SRII
  1. ;
  1. S (SRT,SRAA)=0 F S SRAA=$O(^SRF(SRTN,13,SRAA)) Q:'SRAA S OCOD=+$G(^(SRAA,2)) I OCOD S SRT=$$CPT^ICPTCOD(OCOD,SRDATE) I $P(SRT,"^",7)=0 S ^TMP("SRCVER",$J,"2;!;OTHER PROCEDURE CPT CODE",$P(SRT,"^",2))=OCOD_"^"_SRAA D
  1. .S SRBB=0 F S SRBB=$O(^SRF(SRTN,13,SRAA,"MOD",SRBB)) Q:'SRBB S SRMOD="" S (SRT,Y)=$P($G(^SRF(SRTN,13,SRAA,"MOD",SRBB,0)),"^") D DISPLAY^SROMOD S SRMOD=$S($G(SRMOD):SRMOD_","_Y,1:Y) D
  1. ..S ^TMP("SRCVER",$J,"2_1;; CPT MODIFIER",SRMOD)=$P(SRT,"^")_"^"_SRAA
  1. ;
  1. ; RBD - 10/15/13 - PATCH 177 - Logic expanded to include ICD-10
  1. I $P(SRND34,"^",3)'="" S SRT=$$ICD^SROICD(SRTN,$P(SRND34,"^",3)) I +$P(SRT,"^",10)=0 S ^TMP("SRCVER",$J,"3;!;PRIN DIAGNOSIS CODE",$$CODEC^ICDEX(80,$P(SRND34,"^",3)))=$P(SRND34,"^",3)
  1. ;
  1. S SRAA=0 F S SRAA=$O(^SRF(SRTN,14,SRAA)) Q:'SRAA S OCOD=$P(^SRF(SRTN,14,SRAA,0),"^",3) I OCOD S SRT=$$ICD^SROICD(SRTN,OCOD) I +$P(SRT,"^",10)=0 S ^TMP("SRCVER",$J,"4;!;OTHER PREOP DIAGNOSIS",$$CODEC^ICDEX(80,OCOD))=OCOD_"^"_SRAA
  1. ; End 177
  1. ;
  1. DISP Q:'$D(^TMP("SRCVER",$J))
  1. W !!,DLN
  1. D EN^DDIOL("The following codes are no longer active and will be deleted for case #:"_SRTN,,"!")
  1. S SRAA="" F S SRAA=$O(^TMP("SRCVER",$J,SRAA)) Q:SRAA="" W:SRAA["!" ! S (SRBB,SRCC)="" F S SRBB=$O(^TMP("SRCVER",$J,SRAA,SRBB)) Q:SRBB="" S SRCC=SRCC+1 D
  1. .; RBD - 10/15/13 - PATCH 177 - Display Code Set Version also
  1. .W:SRCC=1 !,?10,$P(SRAA,";",3)_$S($P(SRAA,";",3)["DIAGNOSIS":" "_SRICDV,1:"")_": ",?40,SRBB W:SRCC>1 !,?40,SRBB
  1. D EN^DDIOL("New active codes must be re-entered. A MailMan message will be sent to",,"!!")
  1. D EN^DDIOL("the "_$S(SRNON'="":"provider and attending provider",1:"surgeon and attending surgeon")_" of record and to the user who edited",,"!")
  1. D EN^DDIOL("the record with case details for follow-up.",,"!")
  1. W !!,DLN
  1. W !!,"Press RETURN to continue " R SRX:DTIME
  1. D SENDMSG
  1. Q
  1. SENDMSG ;Send mail message when check is complete.
  1. Q:'$D(^TMP("SRCVER",$J))
  1. ; RBD - 10/15/13 - PATCH 177 - Logic expanded to include ICD-10
  1. K SR,XMY S XMDUZ="SURGERY PACKAGE",XMSUB="ICD"_$S($$ICD910^SROICD(SRTN)["10":"-9",1:"")_" OR CPT CODE DELETION",XMY(DUZ)="",SLN=0 D NOW^%DTC S Y=% X ^DD("DD")
  1. ; End 177
  1. F SRJJ=SRPD,ATTD,DUZ S:$G(SRJJ) XMY(SRJJ)=""
  1. S DFN=$P(^SRF(SRTN,0),"^") D DEM^VADPT
  1. S SR(1)="Patient: "_$E(VADM(1),1,20)_$J("",30-$L(VADM(1)))_" Case #: "_SRTN
  1. S Y=SRDATE D DD^%DT
  1. S SR(2)=$S(SRNON'="":"Procedure Date: ",1:"Operation Date: ")_Y_" "_$P(SROP,"^"),SR(3)=""
  1. S SR(5)="The following codes are no longer active and were deleted for this"
  1. S SR(6)="case when the "_$S(SRNON'="":"Time Procedure Began",1:"Time Patient in OR")_" was entered."
  1. S SR(7)="",SLN=8
  1. S SRX=$J("",8),SRX1=$J("",40)
  1. ;
  1. PCPT S SRAA=0,SRAA=$O(^TMP("SRCVER",$J,"1;!;PRINCIPAL CPT CODE",SRAA)) I SRAA S SR(SLN)=SRX_"PRINCIPAL CPT CODE: "_SRAA D
  1. .K SRY S SRY(130,SRTN_",",27)="@" D FILE^DIE("","SRY")
  1. .S SRMOD="",SRJJ=0 F S SRMOD=$O(^TMP("SRCVER",$J,"1_1;; CPT MODIFIER",SRMOD)) Q:SRMOD="" D
  1. ..S SRJJ=SRJJ+1,SLN=SLN+1 S:SRJJ=1 SR(SLN)=SRX_" CPT MODIFIER:"_$J("",14)_SRMOD S:SRJJ>1 SR(SLN)=$J("",36)_SRMOD
  1. ..K SRY S SRY(130,SRTN_",",28)="@" D FILE^DIE("","SRY")
  1. S SLN=SLN+1,SR(SLN)=""
  1. ;
  1. OCPT S SRAA=0,SLN=SLN+1 F S SRAA=$O(^TMP("SRCVER",$J,"2;!;OTHER PROCEDURE CPT CODE",SRAA)) Q:'SRAA S SR(SLN)=SRX_"OTHER PROCEDURE CPT CODE: "_SRAA,SRJ=$P($G(^(SRAA)),"^",2) D
  1. .K SRY S SRY(130.16,SRJ_","_SRTN_",",3)="@" D FILE^DIE("","SRY")
  1. .S SRMOD="",SRJJ=0 F S SRMOD=$O(^TMP("SRCVER",$J,"2_1;; CPT MODIFIER",SRMOD)) Q:SRMOD="" S SRJ=$G(^(SRMOD)) D
  1. ..S SRJJ=SRJJ+1,SLN=SLN+1 S:SRJJ=1 SR(SLN)=SRX_" CPT MODIFIER:"_$J("",14)_SRMOD S:SRJJ>1 SR(SLN)=$J("",36)_SRMOD
  1. ..K SRY S SRY(130.16,SRJ_","_SRTN_",",4)="@" D FILE^DIE("","SRY")
  1. ;
  1. PD ; RBD - 10/15/13 - PATCH 177 - Expanded to include ICD-10
  1. S SRAA=0,SLN=SLN+1,SRAA=$O(^TMP("SRCVER",$J,"3;!;PRIN DIAGNOSIS CODE",SRAA)) I SRAA'="" S SR(SLN)=SRX_"PRIN DIAGNOSIS CODE "_SRICDV_":"_SRX_SRAA K SRY S SRY(130,SRTN_",",32.5)="@" D FILE^DIE("","SRY") D
  1. .I +$P($$ICD^SROICD(SRTN,$P(SRND34,"^",2)),"^",10)=0 D
  1. ..K SRY S SRY(130,SRTN_",",66)="@" D FILE^DIE("","SRY")
  1. ;
  1. OPD S (SRJJ,SRAA)=0 F S SRAA=$O(^TMP("SRCVER",$J,"4;!;OTHER PREOP DIAGNOSIS",SRAA)) Q:SRAA="" S SLN=SLN+1,SRJJ=SRJJ+1 S SRYY=$P($G(^(SRAA)),"^",2) D
  1. .S:SRJJ=1 SR(SLN)=SRX_"OTHER PREOP DIAGNOSIS "_SRICDV_":"_$J("",6)_SRAA S:SRJJ>1 SR(SLN)=$J("",36)_SRAA
  1. .K SRY S SRY(130.17,SRYY_","_SRTN_",",3)="@" D FILE^DIE("","SRY")
  1. ; End 177
  1. S (SR(SLN+1),SR(SLN+2))=""
  1. S SR(SLN+3)="New active codes must be re-entered."
  1. S XMTEXT="SR(" D ^XMD
  1. ; RBD - 10/15/13 - PATCH 177 - Date change so re-acquire Code Set Version
  1. S SRICDV=$$ICDSTR^SROICD(SRTN)
  1. ; End 177
  1. ;
  1. CFLS ;This line of code to update Surgery-CoreFLS changes
  1. Q:'$D(^TMP("CSLSUR1",$J))
  1. S SRSITE=$S($D(SRSITE):SRSITE,1:$$SITE^SROUTL0(SRTN))
  1. ;JAS - 11/07/14 - PATCH 177 - Added code to preserve Fileman variables since ^SROERR0 was intermittently killing them
  1. N SRFMTMP
  1. S SRFMTMP("DC")=DC,SRFMTMP("DL")=DL,SRFMTMP("DP")=DP,SRFMTMP("DA")=DA,SRFMTMP("DR")=DR
  1. S SROERR=SRTN D ^SROERR0
  1. I $G(DC)="" S DC=SRFMTMP("DC")
  1. I $G(DL)="" S DL=SRFMTMP("DL")
  1. I $G(DP)="" S DP=SRFMTMP("DP")
  1. I $G(DA)="" S DA=SRFMTMP("DA")
  1. I $G(DR)="" S DR=SRFMTMP("DR")
  1. K SRFMTMP
  1. ;END 177
  1. Q