[613] | 1 | MCARAM7 ;WASH ISC/JKL-MUSE SUMMARY LOOKUP AND FILE IN DHCP ;6/26/96 12:27
|
---|
| 2 | ;;2.3;Medicine;;09/13/1996
|
---|
| 3 | ;
|
---|
| 4 | ;
|
---|
| 5 | ;Lookup for last transmission in Summary file 700.5
|
---|
| 6 | ;USAGE: S X=$$LSUM^MCARAM7(A,B,.C)
|
---|
| 7 | ;WHERE: A=Date/time of record in FileMan format
|
---|
| 8 | ; B=Name of patient equivalent to name in Patient file (#2)
|
---|
| 9 | ; .C=Array into which data is placed
|
---|
| 10 | ; if unsuccessful, returns an error message
|
---|
| 11 | ; if successful, returns a function value of 0 and a value array:
|
---|
| 12 | ; C("SUM") = IEN of existing Summary record
|
---|
| 13 | ; C("PID") = PID of patient
|
---|
| 14 | ; C("NAME") = name of patient
|
---|
| 15 | ;
|
---|
| 16 | ;variables
|
---|
| 17 | ;MCERR = error message
|
---|
| 18 | ;
|
---|
| 19 | LSUM(MCDT,MCNM,MCS) ;
|
---|
| 20 | ; Where MCDT is Date/time of record in FileMan format
|
---|
| 21 | ; MCNM is Name of patient equivalent to name in Patient file (#2)
|
---|
| 22 | ; MCS is array into which data is placed
|
---|
| 23 | ;
|
---|
| 24 | ; Retrieves PID from Name X-ref of Patient file (#2)
|
---|
| 25 | N MCI,DIC,D,X,Y,MCERR S MCS("SUM")=""
|
---|
| 26 | S DIC="^DPT(",DIC(0)="XZ",D="B",X=MCNM D IX^DIC
|
---|
| 27 | I +Y'>0 S MCERR="21-Name for Summary not in Patient file" Q $$LOG^MCARAM7(MCERR)
|
---|
| 28 | S MCS("PID")=+Y,MCS("NAME")=$P(Y(0),U)
|
---|
| 29 | I '$D(^MCAR(700.5,"B",MCDT)) S MCERR="22-Date/Time not in Summary file" Q $$LOG^MCARAM7(MCERR)
|
---|
| 30 | S MCI=0 F S MCI=$O(^MCAR(700.5,"B",MCDT,MCI)) Q:MCI="" I $D(^MCAR(700.5,"PT",MCS("NAME"),MCI)) S MCS("SUM")=MCI
|
---|
| 31 | I MCS("SUM")="" S MCERR="23-Name does not exist for Date/Time in Summary file" Q $$LOG^MCARAM7(MCERR)
|
---|
| 32 | Q 0
|
---|
| 33 | ;
|
---|
| 34 | KPERR(MCA,MCS) ;Transfer local array data into new 700.5 Summary record in DHCP
|
---|
| 35 | ; occurs for every data transfer attempt whether or not successful
|
---|
| 36 | ;USAGE: S X=$$KPERR^MCARAM7(.A,.B)
|
---|
| 37 | ;WHERE: A=Array of local data arranged for EKG file
|
---|
| 38 | ; B=DHCP data stored in Summary file including
|
---|
| 39 | ; B("SUM")=IEN of Summary file
|
---|
| 40 | ; if unsuccessful, returns an error message
|
---|
| 41 | ; if successful, returns a function value of 0
|
---|
| 42 | ; MCS("FLDT")=Creation date in 700.5, file date/time
|
---|
| 43 | ;
|
---|
| 44 | ; Number of attempts of same data record, field 5
|
---|
| 45 | ; Obsolete with transaction processing, still needed for MCARAP* report
|
---|
| 46 | N MCI,%,DIC,X,Y,MCERR
|
---|
| 47 | S MCS(5)=1
|
---|
| 48 | ; Date/Time Initial, creation of entry in Summary file, field .05
|
---|
| 49 | D NOW^%DTC S (MCS("FLDT"),MCS(.05),MCS(.06))=%
|
---|
| 50 | ; Date/Time Latest, latest transmission attempt, field .06
|
---|
| 51 | ; Transaction processing makes latest transmission date/time
|
---|
| 52 | ; same as initial date/time except for those with imaging updates
|
---|
| 53 | ; Auto instrument name, defined in MCARAM, field 1
|
---|
| 54 | S MCS(1)=MCINST
|
---|
| 55 | ; Reason for failure to pass DHCP validity checks, field 4
|
---|
| 56 | S MCS(4)=$$RFFL(.MCA,.MCS)
|
---|
| 57 | ; Social Security Number, field 2
|
---|
| 58 | S MCS(2)=MCA(.02)
|
---|
| 59 | ; Name, field 3
|
---|
| 60 | S MCS(3)=MCA("NAME")
|
---|
| 61 | ; Type of transmission, field 7
|
---|
| 62 | S MCS(7)=MCTYPE
|
---|
| 63 | S MCI=.05,DIC("DR")=".05///"_MCS(.05) F S MCI=$O(MCS(MCI)) Q:MCI=""!(MCI?1A.A) S DIC("DR")=DIC("DR")_";"_MCI_"///"_MCS(MCI)
|
---|
| 64 | K DD,DO N DLAYGO S DLAYGO=700.5,DIC="^MCAR(700.5,",DIC(0)="LXZ",X=MCA("DT")
|
---|
| 65 | D FILE^DICN
|
---|
| 66 | I +Y>0 S MCS("SUM")=+Y Q 0
|
---|
| 67 | S MCERR="9-Summary record not filed" Q $$LOG^MCARAM7(MCERR)
|
---|
| 68 | ;
|
---|
| 69 | RFFL(MCA,MCS) ; Convert processing errors to 700.5 file fields
|
---|
| 70 | ;USAGE: S X=$$RFFL^MCARAM7(.A,.B)
|
---|
| 71 | ;WHERE: A=Array of local data
|
---|
| 72 | ; B=DHCP data for Summary file including
|
---|
| 73 | ; B("SUM")=internal record number of Summary file
|
---|
| 74 | ; returns field 4 of 700.5 file, reason for failure
|
---|
| 75 | ; field 4 : "D"ate/Time error, "L"oad into DHCP error
|
---|
| 76 | ; "N"ame error, "S"ocial Security Number error
|
---|
| 77 | ; Integers for specific errors listed in the Summary Print,
|
---|
| 78 | ; MCARAP2 - Errors numbered >50 have not been filed as EKG records
|
---|
| 79 | ; returns field 6 of 700.5 file, error code for last transmission
|
---|
| 80 | ; field 6 : "S"uccessful or "U"nsuccessful
|
---|
| 81 | ; MCA("ERR") = # of processing errors
|
---|
| 82 | ;successful transfer attempt
|
---|
| 83 | S MCS(6)="S" I $$GRERR(.MCA)=0 Q ""
|
---|
| 84 | ;unsuccessful transfer attempt
|
---|
| 85 | S MCS(6)="U",MCERR=+MCA("ERR",0)
|
---|
| 86 | I +MCERR=51!(+MCERR=52)!(+MCERR=53) S:$G(MCA("DT"))="" MCA("DT")=MCS("FLDT")
|
---|
| 87 | Q $S(+MCERR>62:"P",+MCERR>60:"M",+MCERR>57:"L",+MCERR>55:"N",+MCERR>53:"S",+MCERR>50:"D",1:+MCERR)
|
---|
| 88 | ;
|
---|
| 89 | GRERR(MCA) ;Find first fatal error
|
---|
| 90 | ;USAGE: S X=$$GRERR(A)
|
---|
| 91 | ;WHERE: A=array of local data
|
---|
| 92 | ; if successful, returns 1 and A("ERR",0)=first fatal error >50
|
---|
| 93 | ; if unsuccessful, returns 0
|
---|
| 94 | ;variables MCERR,MCI,MCJ
|
---|
| 95 | N MCERR,MCI,MCJ
|
---|
| 96 | I MCA("ERR")=0 Q 0
|
---|
| 97 | S MCI=MCA("ERR") F MCJ=1:1:MCI I +MCA("ERR",MCJ)>50 S MCERR=MCA("ERR",MCJ) Q
|
---|
| 98 | I $D(MCERR) S MCA("ERR",0)=MCERR Q 1
|
---|
| 99 | Q 0
|
---|
| 100 | ;
|
---|
| 101 | LOG(MCERR) ;Logs type of error in local array
|
---|
| 102 | ;USAGE: S X=$$LOG^MCARAM7(A)
|
---|
| 103 | ;WHERE: A=Free text error
|
---|
| 104 | ; returns the error message and updates the error array
|
---|
| 105 | S MCA("ERR")=MCA("ERR")+1,MCA("ERR",MCA("ERR"))=MCERR
|
---|
| 106 | Q MCERR
|
---|