| 1 | EC2P24PT ;ALB/JAM - PATCH EC*2.0*24 Post-Init Rtn ; 04/19/00
 | 
|---|
| 2 |  ;;2.0; EVENT CAPTURE ;**24**;04 Apr 2000
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | POST ; entry point
 | 
|---|
| 5 |  ;* search file #725 for invalid CPT IENs then file 721.
 | 
|---|
| 6 |  S ECJ=$J K ^TMP(ECJ,"EC2P24")
 | 
|---|
| 7 |  D F725SRH
 | 
|---|
| 8 |  D BKGPRC
 | 
|---|
| 9 |  D MES^XPDUTL(" ")
 | 
|---|
| 10 |  D BMES^XPDUTL("   completed...")
 | 
|---|
| 11 |  D MES^XPDUTL(" ")
 | 
|---|
| 12 |  Q
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 | F725SRH ; Locate invalid CPT codes in file 725 and correct them
 | 
|---|
| 15 |  N IEN,CPT,ECX,DA,DIE,CPTIEN,DR
 | 
|---|
| 16 |  S IEN=0
 | 
|---|
| 17 |  D MES^XPDUTL(" ")
 | 
|---|
| 18 |  D BMES^XPDUTL("Correcting CPT IEN in EC NATIONAL PROCEDURE file(#725)...")
 | 
|---|
| 19 |  D MES^XPDUTL(" ")
 | 
|---|
| 20 |  F  S IEN=$O(^EC(725,IEN)) Q:'IEN  D
 | 
|---|
| 21 |  . S ECX=$G(^EC(725,IEN,0)),CPT=$P(ECX,U,5) I CPT="" Q
 | 
|---|
| 22 |  . I $D(^ICPT(CPT)) Q
 | 
|---|
| 23 |  . I $D(^ICPT("B",CPT)) D  Q
 | 
|---|
| 24 |  . . S CPTIEN=$O(^ICPT("B",CPT,0))
 | 
|---|
| 25 |  . . I CPTIEN="" S ^TMP(ECJ,"EC2P24","F725",IEN)=CPT_U_ECX Q
 | 
|---|
| 26 |  . . K DIE,DR S DA=IEN,DR="4////"_CPTIEN,DIE="^EC(725," D ^DIE K DR
 | 
|---|
| 27 |  . . D MES^XPDUTL(" ")
 | 
|---|
| 28 |  . . D BMES^XPDUTL("   Entry #"_IEN_" for "_$P(ECX,U)_" ["_$P(ECX,U,2)_"]")
 | 
|---|
| 29 |  . . D BMES^XPDUTL("   ...updated to use CPT IEN "_CPTIEN_".")
 | 
|---|
| 30 |  . S ^TMP(ECJ,"EC2P24","F725",IEN)=CPT_U_ECX Q
 | 
|---|
| 31 |  Q
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 | F721SRH ; Locate invalid CPT code in file 721 and corrects it
 | 
|---|
| 34 |  N ECD,ECSD,ECED,ECPT,EC,ECDA,FLG,ERR,CPTIEN,X,Y
 | 
|---|
| 35 |  S %DT="X",X="12/22/99" D ^%DT S ECSD=Y,ECD=ECSD-.1
 | 
|---|
| 36 |  D NOW^%DTC S ECED=%
 | 
|---|
| 37 |  F  S ECD=$O(^ECH("AC",ECD)) Q:'ECD  Q:ECD>ECED  S ECDA=0 D
 | 
|---|
| 38 |  . F  S ECDA=$O(^ECH("AC",ECD,ECDA)) Q:'ECDA  D
 | 
|---|
| 39 |  . . S EC=$G(^ECH(ECDA,"P")),ECPT=$P(EC,U),ERR=0 I ECPT="" Q
 | 
|---|
| 40 |  . . I $D(^ICPT(ECPT)) Q
 | 
|---|
| 41 |  . . S EC(0)=$G(^ECH(ECDA,0)) I EC(0)="" Q
 | 
|---|
| 42 |  . . D
 | 
|---|
| 43 |  . . . S CPTIEN=$O(^ICPT("B",ECPT,0)) I CPTIEN="" S ERR=1 Q
 | 
|---|
| 44 |  . . . I '$D(^ICPT(CPTIEN)) S ERR=1 Q
 | 
|---|
| 45 |  . . . S $P(^ECH(ECDA,"P"),U)=CPTIEN
 | 
|---|
| 46 |  . . . S FLG=$$FIX721(ECDA,.EC)
 | 
|---|
| 47 |  . . S ^TMP(ECJ,"EC2P24","F721",ECDA)=ECPT_U_ERR_U_EC(0)
 | 
|---|
| 48 |  K DIE,DA,DR
 | 
|---|
| 49 |  Q
 | 
|---|
| 50 |  ;
 | 
|---|
| 51 | MSGTXT ; Message intro
 | 
|---|
| 52 |  ;; Please forward this message to your local DSS Site Manager or
 | 
|---|
| 53 |  ;; Event Capture ADPAC.
 | 
|---|
| 54 |  ;;
 | 
|---|
| 55 |  ;; A review of the EVENT CAPTURE PATIENT file (#721) was done on
 | 
|---|
| 56 |  ;; CPT codes for the period 12/22/99-present. This message provides 
 | 
|---|
| 57 |  ;; the result of encounters found with invalid CPT code during that
 | 
|---|
| 58 |  ;; period.  If the encounter had a CPT code that was stored in its
 | 
|---|
| 59 |  ;; external format it was corrected with the corresponding internal 
 | 
|---|
| 60 |  ;; entry number and shows on the list below with a status of 'C'.
 | 
|---|
| 61 |  ;; If the entry status is shown as 'NC', the user should use the 
 | 
|---|
| 62 |  ;; 'Enter/Edit Patient Procedures' [ECPAT] option to correct these 
 | 
|---|
| 63 |  ;; entries to have the proper CPT code.
 | 
|---|
| 64 |  ;;    
 | 
|---|
| 65 |  ;;QUIT
 | 
|---|
| 66 |  ;
 | 
|---|
| 67 | BKGPRC ;* print entrie with invalid CPT codes
 | 
|---|
| 68 |  D BMES^XPDUTL("You will receive a MailMan message regarding invalid CPT entries in file #721 and #725")
 | 
|---|
| 69 |  D BMES^XPDUTL("  ")
 | 
|---|
| 70 |  S ZTRTN="PROCESS^EC2P24PT",ZTDESC="File #721 Review from EC*2*24"
 | 
|---|
| 71 |  S ZTIO="",ZTDTH=$H,ZTREQ="@",ZTSAVE("ZTREQ")="",ZTSAVE("ECJ")="" D ^%ZTLOAD
 | 
|---|
| 72 |  Q
 | 
|---|
| 73 |  ;
 | 
|---|
| 74 | PROCESS ;* background job entry point
 | 
|---|
| 75 |  N IEN,COUNT,TXTVAR,BL,ECDT,ECY,I,STA,ECPT
 | 
|---|
| 76 |  D F721SRH
 | 
|---|
| 77 |  S COUNT=0,$P(BL," ",40)=" "
 | 
|---|
| 78 |  F I=1:1 S TXTVAR=$P($T(MSGTXT+I),";;",2) Q:TXTVAR="QUIT"  D LINE(TXTVAR)
 | 
|---|
| 79 |  D LINE(" ")
 | 
|---|
| 80 |  D LINE(" ")
 | 
|---|
| 81 |  D LINE("721 IEN        PATIENT IEN    DATE/TIME               OLD/NEW CPT CODE    STA")
 | 
|---|
| 82 |  D LINE("-------        -----------    ---------               ----------------    ---")
 | 
|---|
| 83 |  S IEN=0
 | 
|---|
| 84 |  F  S IEN=$O(^TMP(ECJ,"EC2P24","F721",IEN)) Q:'IEN  D
 | 
|---|
| 85 |  . S ECX=^TMP(ECJ,"EC2P24","F721",IEN),STA=$P(ECX,U,2)
 | 
|---|
| 86 |  . S STA=$S(STA:"NC",1:"C")
 | 
|---|
| 87 |  . S ECPT=$P(ECX,U)_"/"_$S(STA:"",1:$P($G(^ECH(IEN,"P")),U))
 | 
|---|
| 88 |  . S Y=$P(ECX,U,5) X ^DD("DD") S ECDT=Y
 | 
|---|
| 89 |  . S ECY=$E(IEN_BL,1,15)_$E($P(ECX,U,4)_BL,1,15)_$E(ECDT_BL,1,24)
 | 
|---|
| 90 |  . S ECY=ECY_$E(ECPT_BL,1,20)_STA
 | 
|---|
| 91 |  . D LINE(ECY)
 | 
|---|
| 92 |  I $D(^TMP(ECJ,"EC2P24","F721")) D
 | 
|---|
| 93 |  . D LINE(" ")
 | 
|---|
| 94 |  . D LINE("C  - Corrected")
 | 
|---|
| 95 |  . D LINE("NC - Not Corrected")
 | 
|---|
| 96 |  I $D(^TMP(ECJ,"EC2P24","F725")) D
 | 
|---|
| 97 |  . D LINE(" ")
 | 
|---|
| 98 |  . D LINE(" ")
 | 
|---|
| 99 |  . D LINE(" ")
 | 
|---|
| 100 |  . D LINE("CPT entries found in EC NATIONAL PROCEDURE FILE #725")
 | 
|---|
| 101 |  . D LINE("that could not be located in the CPT file #81")
 | 
|---|
| 102 |  . D LINE(" ")
 | 
|---|
| 103 |  . D LINE("725 IEN        EC NATIONAL CODE                       CPT CODE")
 | 
|---|
| 104 |  . D LINE("-------        ----------------                       --------")
 | 
|---|
| 105 |  . S IEN=0 F  S IEN=$O(^TMP(ECJ,"EC2P24","F725",IEN)) Q:'IEN  D
 | 
|---|
| 106 |  . . S ECX=^TMP(ECJ,"EC2P24","F725",IEN)
 | 
|---|
| 107 |  . . S ECY=$E(IEN_BL,1,15)_$E($P(ECX,U,2)_BL,1,36)_"   "_$P(ECX,U)
 | 
|---|
| 108 |  . . D LINE(ECY)
 | 
|---|
| 109 |  I '$D(^TMP(ECJ,"EC2P24","F721")) D
 | 
|---|
| 110 |  .D LINE(" ")
 | 
|---|
| 111 |  .D LINE(" No entries found in EVENT CAPTURE PATIENT file #721 that")
 | 
|---|
| 112 |  .D LINE(" needs correction.")
 | 
|---|
| 113 |  .D LINE(" ")
 | 
|---|
| 114 |  K ^TMP(ECJ,"EC2P24","F721"),^TMP(ECJ,"EC2P24","F725")
 | 
|---|
| 115 |  D MAIL
 | 
|---|
| 116 |  K ^TMP(ECJ,"EC2P24"),ECJ
 | 
|---|
| 117 |  Q
 | 
|---|
| 118 |  ;
 | 
|---|
| 119 | LINE(TEXT) ; Add line to message global
 | 
|---|
| 120 |  S COUNT=COUNT+1,^TMP(ECJ,"EC2P24",COUNT)=TEXT
 | 
|---|
| 121 |  Q
 | 
|---|
| 122 |  ;
 | 
|---|
| 123 | MAIL ; Send message
 | 
|---|
| 124 |  N XMDUZ,XMY,XMTEXT,XMSUB
 | 
|---|
| 125 |  S XMY(DUZ)="",XMDUZ=.5
 | 
|---|
| 126 |  S XMSUB="Event Capture Patient CPT Code Review"
 | 
|---|
| 127 |  S XMTEXT="^TMP(ECJ,""EC2P24"","
 | 
|---|
| 128 |  D ^XMD
 | 
|---|
| 129 |  Q
 | 
|---|
| 130 | FIX721(ECFN,EC) ;Fix bad CPT code entry in file #721
 | 
|---|
| 131 |  ; Input: ECFN  -  Event Capture file #721 IEN
 | 
|---|
| 132 |  ;        EC    -  Zero (0) and "P" nodes in file #721
 | 
|---|
| 133 |  ;
 | 
|---|
| 134 |  ; Output:      -  Returns 1 if fixed and 0 if failed
 | 
|---|
| 135 |  ;
 | 
|---|
| 136 |  N EC4,ECDX,ECP,ECCPT,ECINP,ECPCE,ECD,NODE,ECDT
 | 
|---|
| 137 |  S EC4=$P(EC(0),"^",19),ECDX=$P(EC,"^",2),ECP=$P(EC(0),"^",9)
 | 
|---|
| 138 |  S ECCPT=$S(ECP["EC":$P($G(^EC(725,+ECP,0)),"^",5),1:+ECP)
 | 
|---|
| 139 |  S ECINP=$P(EC(0),"^",22),ECD=$P(EC(0),"^",7),NODE=$G(^ECD(ECD,0))
 | 
|---|
| 140 |  S ECPCE="U~"_$S($P(NODE,"^",14)]"":$P(NODE,"^",14),1:"N")
 | 
|---|
| 141 |  D NOW^%DTC S ECDT=%
 | 
|---|
| 142 |  D PCEE^ECBEN2U
 | 
|---|
| 143 |  Q 1
 | 
|---|