| 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
|
---|