| 1 | ECV5RPC ;ALB/ACS;Event Capture Spreadsheet Data Validation ;07 Aug 01
 | 
|---|
| 2 |  ;;2.0; EVENT CAPTURE ;**25,30,36,47**;8 May 96
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ;-----------------------------------------------------------------------
 | 
|---|
| 5 |  ;  Validates the following Event Capture Spreadsheet Upload fields for
 | 
|---|
| 6 |  ;  records sent to PCE:
 | 
|---|
| 7 |  ;    1. DIAGNOSIS CODE
 | 
|---|
| 8 |  ;    2. ASSOCIATED CLINIC
 | 
|---|
| 9 |  ;-----------------------------------------------------------------------
 | 
|---|
| 10 |  ;=======================================================================
 | 
|---|
| 11 |  ;MODIFICATIONS
 | 
|---|
| 12 |  ;08/2001    EC*2.0*30   Updated the Diagnosis validation logic
 | 
|---|
| 13 |  ;=======================================================================
 | 
|---|
| 14 |  ;
 | 
|---|
| 15 | VALDIAG ;Validate Diagnosis Code.  Make sure it exists on the ICD9 file
 | 
|---|
| 16 |  N ECDT
 | 
|---|
| 17 |  S %DT="XST",X=$G(ECENCV,"NOW") D ^%DT S ECDT=+Y
 | 
|---|
| 18 |  I ECDXV="" D
 | 
|---|
| 19 |  . ; Spreadsheet is missing diagnosis code
 | 
|---|
| 20 |  . S ECERRMSG=$P($T(DIAG1^ECV5RPC),";;",2)
 | 
|---|
| 21 |  . S ECCOLERR=ECDXPC
 | 
|---|
| 22 |  . D ERROR
 | 
|---|
| 23 |  ;if diag invalid, send error message
 | 
|---|
| 24 |  I ECDXV'="" S (ECDXIEN,ECSFOUND)=0 D
 | 
|---|
| 25 |  . S ECDXIEN=$$ICDDX^ICDCODE(ECDXV,ECDT)
 | 
|---|
| 26 |  . I +ECDXIEN>0,$P(ECDXIEN,"^",10) S ECDXIEN=+ECDXIEN,ECSFOUND=1 Q
 | 
|---|
| 27 |  . I 'ECSFOUND D
 | 
|---|
| 28 |  . . ; Invalid Diagnosis code
 | 
|---|
| 29 |  . . S ECERRMSG=$P($T(DIAG2^ECV5RPC),";;",2)
 | 
|---|
| 30 |  . . S ECCOLERR=ECDXPC
 | 
|---|
| 31 |  . . D ERROR
 | 
|---|
| 32 |  . . Q
 | 
|---|
| 33 |  . Q
 | 
|---|
| 34 |  Q
 | 
|---|
| 35 |  ;
 | 
|---|
| 36 | VALCLIN ;Validate Associated Clinic.  Make sure the clinic is active for
 | 
|---|
| 37 |  ;the date of the encounter
 | 
|---|
| 38 |  S ECERRFLG=0
 | 
|---|
| 39 |  I ECCLNV="" D
 | 
|---|
| 40 |  . ; Spreadsheet is missing the associated clinic
 | 
|---|
| 41 |  . S ECERRMSG=$P($T(CLIN1^ECV5RPC),";;",2)
 | 
|---|
| 42 |  . S ECCOLERR=ECCLNPC
 | 
|---|
| 43 |  . D ERROR
 | 
|---|
| 44 |  . Q
 | 
|---|
| 45 |  I 'ECERRFLG,'$D(^SC("B",ECCLNV)) D
 | 
|---|
| 46 |  . ; No B x-ref on file
 | 
|---|
| 47 |  . S ECERRMSG=$P($T(CLIN2^ECV5RPC),";;",2)
 | 
|---|
| 48 |  . S ECCOLERR=ECCLNPC
 | 
|---|
| 49 |  . D ERROR
 | 
|---|
| 50 |  . Q
 | 
|---|
| 51 |  I 'ECERRFLG,$D(^SC("B",ECCLNV)) D
 | 
|---|
| 52 |  . ;get associated clinic ien
 | 
|---|
| 53 |  . S ECCLNIEN=$O(^SC("B",ECCLNV,0))
 | 
|---|
| 54 |  . I '$D(^SC(ECCLNIEN,0)) D
 | 
|---|
| 55 |  . . ; Associated clinic ien not on file
 | 
|---|
| 56 |  . . S ECERRMSG=$P($T(CLIN3^ECV5RPC),";;",2)
 | 
|---|
| 57 |  . . S ECCOLERR=ECCLNPC
 | 
|---|
| 58 |  . . D ERROR
 | 
|---|
| 59 |  . . Q
 | 
|---|
| 60 |  . I 'ECERRFLG D
 | 
|---|
| 61 |  . . ;make sure it is of type 'clinic'
 | 
|---|
| 62 |  . . N CLINDATA
 | 
|---|
| 63 |  . . S CLINDATA=$G(^SC(ECCLNIEN,0))
 | 
|---|
| 64 |  . . I $P(CLINDATA,U,3)'="C" D
 | 
|---|
| 65 |  . . . S ECERRMSG=$P($T(CLIN4^ECV5RPC),";;",2)
 | 
|---|
| 66 |  . . . S ECCOLERR=ECCLNPC
 | 
|---|
| 67 |  . . . D ERROR
 | 
|---|
| 68 |  . . . Q
 | 
|---|
| 69 |  . . Q
 | 
|---|
| 70 |  . ;
 | 
|---|
| 71 |  . ;check for inactivate and reactivate dates
 | 
|---|
| 72 |  . I 'ECERRFLG,$D(^SC(ECCLNIEN,"I")) D
 | 
|---|
| 73 |  . . ;get inactivated and reactivated dates
 | 
|---|
| 74 |  . . N INACT,REACT
 | 
|---|
| 75 |  . . S INACT=$P(^SC(ECCLNIEN,"I"),U,1),REACT=$P(^SC(ECCLNIEN,"I"),U,2)
 | 
|---|
| 76 |  . . I INACT'="" D
 | 
|---|
| 77 |  . . . I REACT="",ECENCV'<INACT D CLINERR^ECV5RPC
 | 
|---|
| 78 |  . . . I REACT,ECENCV'<INACT,ECENCV<REACT D CLINERR^ECV5RPC
 | 
|---|
| 79 |  . . . Q
 | 
|---|
| 80 |  . . Q
 | 
|---|
| 81 |  . Q
 | 
|---|
| 82 |  Q
 | 
|---|
| 83 |  ;;
 | 
|---|
| 84 | CLINERR ;Clinic inactive for this encounter date
 | 
|---|
| 85 |  S ECERRMSG=$P($T(CLIN5^ECV5RPC),";;",2)
 | 
|---|
| 86 |  S ECCOLERR=ECCLNPC
 | 
|---|
| 87 |  D ERROR
 | 
|---|
| 88 |  Q
 | 
|---|
| 89 |  ;;
 | 
|---|
| 90 | ERROR ;--Set up array entry to contain the following:
 | 
|---|
| 91 |  ;1. record number
 | 
|---|
| 92 |  ;2. column number on spreadsheet containing the record number
 | 
|---|
| 93 |  ;3. column number on spreadsheet containing the data in error
 | 
|---|
| 94 |  ;4. error message
 | 
|---|
| 95 |  ;
 | 
|---|
| 96 |  S ECINDEX=ECINDEX+1
 | 
|---|
| 97 |  S RESULTS(ECINDEX)=ECRECV_"^"_ECRECPC_"^"_ECCOLERR_"^"_ECERRMSG_"^"
 | 
|---|
| 98 |  S ECERRFLG=1
 | 
|---|
| 99 |  Q
 | 
|---|
| 100 |  ;
 | 
|---|
| 101 |  ;Error messages:
 | 
|---|
| 102 |  ;
 | 
|---|
| 103 | DIAG1 ;;Diagnosis code is required for this DSS Unit
 | 
|---|
| 104 | DIAG2 ;;Invalid Diagnosis code
 | 
|---|
| 105 | CLIN1 ;;Associated Clinic is required for this DSS Unit
 | 
|---|
| 106 | CLIN2 ;;Assoc Clinic "B" x-ref not found on Hosp Location File(#44)
 | 
|---|
| 107 | CLIN3 ;;Assoc Clinic not found on Hosp Location File(#44)
 | 
|---|
| 108 | CLIN4 ;;Assoc Clinic must be of type "C" (clinic)
 | 
|---|
| 109 | CLIN5 ;;Assoc Clinic inactive for this encounter date
 | 
|---|