| 1 | MCARUTL5 ;HOIFO/WAA-UTILITY FOR VALIDATING ENTRY ;04/13/01  12:00 | 
|---|
| 2 | ;;2.3;Medicine;**33**;09/13/1996 | 
|---|
| 3 | ; | 
|---|
| 4 | ; VALID Validation function | 
|---|
| 5 | ; | 
|---|
| 6 | ; MC*2.3*33 this is a new module to validate the entry | 
|---|
| 7 | ; is for the stated patient and matched the one on the "AC" | 
|---|
| 8 | ; The subroutine will work out the "AC" from the procedure. | 
|---|
| 9 | ; This will ensure that "AC" that the main program is using | 
|---|
| 10 | ; and the "AC" that I am building are one and the same. | 
|---|
| 11 | ; if they don't match I will not validate it. | 
|---|
| 12 | ; | 
|---|
| 13 | ;Input: | 
|---|
| 14 | ; ROOT = The root Global Reference for the entry. | 
|---|
| 15 | ; IEN = The Internal entry number for the procedure being checked | 
|---|
| 16 | ; DFN = The Patient DFN with in the Medicine Patient file. | 
|---|
| 17 | ; | 
|---|
| 18 | ;Outout: | 
|---|
| 19 | ; VALID = 1 or 0 | 
|---|
| 20 | ;         1 = The entry is a procedure for the indicated Patient | 
|---|
| 21 | ;         0 = The entry is not a procedure for the indicated Patient | 
|---|
| 22 | ; | 
|---|
| 23 | VALID(ROOT,IEN,DFN) ; Main entry point for this function | 
|---|
| 24 | N VALID,LINE,FN | 
|---|
| 25 | S VALID=0 ; Init VALID to 0 | 
|---|
| 26 | S FN=$P(ROOT,"(",2) ; parce out the internal entry number | 
|---|
| 27 | S LINE=$G(^MCAR(FN,IEN,0)) ; validate that the entry exists | 
|---|
| 28 | I LINE'="" D | 
|---|
| 29 | . N IEN697,PL,PRODFN,PRODT | 
|---|
| 30 | . S IEN697=$O(^MCAR(697.2,"C",ROOT,0)) Q:IEN697<1  ; get the procedure info | 
|---|
| 31 | . S PL=$P(^MCAR(697.2,IEN697,0),U,12) Q:PL=""  ; get the location if the pat DFN within the procedure | 
|---|
| 32 | . S PRODFN=$$GET1^DIQ(FN,IEN,PL,"I") Q:PRODFN<1  ; get the pat DFN | 
|---|
| 33 | . Q:PRODFN'=DFN  ; compare the pat DFN from the procedure with the passed DFN | 
|---|
| 34 | . S PRODT=9999999.9999-$P(LINE,U) ; get the Procedure date and invert it | 
|---|
| 35 | . I '$D(^MCAR(690,"AC",PRODFN,PRODT,ROOT,IEN)) Q  ; check to see if the entry is in the a valid entry within 690 "AC" Xref | 
|---|
| 36 | . S VALID=1 ; Valid entry | 
|---|
| 37 | . Q | 
|---|
| 38 | Q VALID | 
|---|