| 1 | MCARAM6 ;WASH ISC/JKL-MUSE LOOKUP IN DHCP ;5/2/96  12:49 | 
|---|
| 2 | ;;2.3;Medicine;;09/13/1996 | 
|---|
| 3 | ; | 
|---|
| 4 | ; | 
|---|
| 5 | ;Lookup for last record in EKG file given a date/time and SSN | 
|---|
| 6 | ;USAGE:  S X=$$LSSN^MCARAM6(A,B,.C) | 
|---|
| 7 | ;WHERE:  A=Date/time of record in FileMan format | 
|---|
| 8 | ;        B=Social Security Number in consecutive digits | 
|---|
| 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("EKG") = IEN of existing EKG record | 
|---|
| 13 | ;  C(1) = PID of patient, field 1, Medical Patient | 
|---|
| 14 | ;  C("NAME") = name of patient | 
|---|
| 15 | ; | 
|---|
| 16 | ;variables | 
|---|
| 17 | ;MCERR = error message | 
|---|
| 18 | ; | 
|---|
| 19 | LSSN(MCDT,MCSS,MCP) ; | 
|---|
| 20 | ; Where MCDT is Date/time of record in FileMan format | 
|---|
| 21 | ;       MCSS is Social Security Number in consecutive digits | 
|---|
| 22 | ;       MCP is array into which data is placed | 
|---|
| 23 | ; | 
|---|
| 24 | ;  Retrieves PID from SSN X-ref of Patient file | 
|---|
| 25 | N MCI,DIC,D,X,Y S MCP("EKG")="" | 
|---|
| 26 | S DIC="^DPT(",DIC(0)="XZ",D="SSN",X=MCSS D IX^DIC | 
|---|
| 27 | I +Y'>0 S MCERR=$$EMPSSN(MCSS,.Y) I +MCERR=55 Q MCERR | 
|---|
| 28 | S MCP(1)=+Y,MCP("NAME")=$P(Y(0),U) | 
|---|
| 29 | I '$D(^MCAR(691.5,"B",MCDT)) S MCERR="12-Date/Time not in EKG file" Q $$LOG^MCARAM7(MCERR) | 
|---|
| 30 | S MCI=0 F  S MCI=$O(^MCAR(691.5,"B",MCDT,MCI)) Q:MCI=""  I $D(^MCAR(691.5,"C",MCP(1),MCI)) S MCP("EKG")=MCI | 
|---|
| 31 | I MCP("EKG")="" S MCERR="15-PID does not exist for Date/Time" Q $$LOG^MCARAM7(MCERR) | 
|---|
| 32 | Q 0 | 
|---|
| 33 | ; | 
|---|
| 34 | ERR ;Error return | 
|---|
| 35 | Q MCERR | 
|---|
| 36 | ; | 
|---|
| 37 | EMPSSN(MCSS,Y) ;Determine if unretrievable SSN belongs to an employee | 
|---|
| 38 | ;USAGE:  S X=$$EMPSSN^MCARAM6(A,.B) | 
|---|
| 39 | ;WHERE:  A=Social Security Number | 
|---|
| 40 | ;  if unsuccessful, returns an error message | 
|---|
| 41 | ;  if successful, returns a function value of 0 and an array: | 
|---|
| 42 | ;    B = patient id , B(0) = patient name | 
|---|
| 43 | ; | 
|---|
| 44 | N MCEPID,MCEMP,DIC,D,X,Y | 
|---|
| 45 | S MCERR="55-Social Security Number not in Patient file" | 
|---|
| 46 | I '$D(^DPT("SSN",MCSS)) Q MCERR | 
|---|
| 47 | S MCEPID=$O(^DPT("SSN",MCSS,0)) | 
|---|
| 48 | I '$D(^DPT(MCEPID,.36)) G STYPE | 
|---|
| 49 | ;  Retrieves Employee entry from Eligibility Code file | 
|---|
| 50 | SELIG S DIC="^DIC(8,",DIC(0)="XZ",D="B",X="EMPLOYEE" D IX^DIC | 
|---|
| 51 | I +Y'>0 G STYPE | 
|---|
| 52 | S MCEMP=+Y | 
|---|
| 53 | I ^DPT(MCEPID,.36)=MCEMP,$D(^DPT(MCEPID,0)) S Y=MCEPID,Y(0)=$P(^DPT(MCEPID,0),"^") Q 0 | 
|---|
| 54 | STYPE I '$D(^DPT(MCEPID,"TYPE")) Q MCERR | 
|---|
| 55 | ;  Retrieves Employee entry from Type of Patient file | 
|---|
| 56 | S DIC="^DG(391,",DIC(0)="XZ",D="B",X="EMPLOYEE" D IX^DIC | 
|---|
| 57 | I +Y'>0 Q MCERR | 
|---|
| 58 | S MCEMP=+Y | 
|---|
| 59 | I ^DPT(MCEPID,"TYPE")=MCEMP,$D(^DPT(MCEPID,0)) S Y=MCEPID,Y(0)=$P(^DPT(MCEPID,0),"^") Q 0 | 
|---|
| 60 | Q MCERR | 
|---|
| 61 | ; | 
|---|
| 62 | ;Lookup for last record in EKG file given a date/time and full name | 
|---|
| 63 | ;USAGE:  S X=$$LNAME^MCARAM6(A,B,.C) | 
|---|
| 64 | ;WHERE:  A=Date/time of record in FileMan format | 
|---|
| 65 | ;        B=Full Name in DHCP format | 
|---|
| 66 | ;       .C=Array into which data is placed | 
|---|
| 67 | ;  if unsuccessful, returns an error message | 
|---|
| 68 | ;  if successful, returns a function value of 0 and a value array: | 
|---|
| 69 | ;  C("EKG") = IEN of existing EKG record | 
|---|
| 70 | ;  C(1) = PID of patient, field 1, Medical Patient | 
|---|
| 71 | ;  C("NAME") = name of patient | 
|---|
| 72 | ; | 
|---|
| 73 | ;variables | 
|---|
| 74 | ;MCERR = error message | 
|---|
| 75 | ; | 
|---|
| 76 | LNAME(MCDT,MCNAME,MCP) ; | 
|---|
| 77 | ; Where MCDT is Date/time of record in FileMan format | 
|---|
| 78 | ;       MCNAME is Full Name in DHCP format | 
|---|
| 79 | ;       MCP is array into which data is placed | 
|---|
| 80 | ; | 
|---|
| 81 | ;  Retrieves PID from Name X-ref of Patient file | 
|---|
| 82 | N MCI,DIC,D,X,Y S MCP("EKG")="" | 
|---|
| 83 | S DIC="^DPT(",DIC(0)="XZ",D="B",X=MCNAME D IX^DIC | 
|---|
| 84 | I +Y'>0 S MCERR=$$EMPNAME(MCNAME,.Y) I +MCERR=56 Q MCERR | 
|---|
| 85 | S MCP(1)=+Y,MCP("NAME")=$P(Y(0),U) | 
|---|
| 86 | I '$D(^MCAR(691.5,"B",MCDT)) S MCERR="12-Date/Time not in EKG file" Q $$LOG^MCARAM7(MCERR) | 
|---|
| 87 | S MCI=0 F  S MCI=$O(^MCAR(691.5,"B",MCDT,MCI)) Q:MCI=""  I $D(^MCAR(691.5,"C",MCP(1),MCI)) S MCP("EKG")=MCI | 
|---|
| 88 | I MCP("EKG")="" S MCERR="15-PID does not exist for Date/Time" Q $$LOG^MCARAM7(MCERR) | 
|---|
| 89 | Q 0 | 
|---|
| 90 | ; | 
|---|
| 91 | EMPNAME(MCNAME,Y) ;Determine if unretrievable name belongs to an employee | 
|---|
| 92 | ;USAGE:  S X=$$EMPNAME^MCARAM6(A,.B) | 
|---|
| 93 | ;WHERE:  A = Name | 
|---|
| 94 | ;  if unsuccessful, returns an error message | 
|---|
| 95 | ;  if successful, returns a function value of 0 and an array: | 
|---|
| 96 | ;    B = patient id , B(0) = patient name | 
|---|
| 97 | ; | 
|---|
| 98 | N MCEPID,MCEMP,DIC,D,X,Y | 
|---|
| 99 | S MCERR="56-Name does not match Patient file" | 
|---|
| 100 | I '$D(^DPT("B",MCNAME)) Q MCERR | 
|---|
| 101 | S MCEPID=$O(^DPT("B",MCNAME,0)) | 
|---|
| 102 | I '$D(^DPT(MCEPID,.36)) G NTYPE | 
|---|
| 103 | ;  Retrieves Employee entry from Eligibility Code file | 
|---|
| 104 | NELIG S DIC="^DIC(8,",DIC(0)="XZ",D="B",X="EMPLOYEE" D IX^DIC | 
|---|
| 105 | I +Y'>0 G NTYPE | 
|---|
| 106 | S MCEMP=+Y | 
|---|
| 107 | I ^DPT(MCEPID,.36)=MCEMP,$D(^DPT(MCEPID,0)) S Y=MCEPID,Y(0)=$P(^DPT(MCEPID,0),"^") Q 0 | 
|---|
| 108 | NTYPE I '$D(^DPT(MCEPID,"TYPE")) Q MCERR | 
|---|
| 109 | ;  Retrieves Employee entry from Type of Patient file | 
|---|
| 110 | S DIC="^DG(391,",DIC(0)="XZ",D="B",X="EMPLOYEE" D IX^DIC | 
|---|
| 111 | I +Y'>0 Q MCERR | 
|---|
| 112 | S MCEMP=+Y | 
|---|
| 113 | I ^DPT(MCEPID,"TYPE")=MCEMP,$D(^DPT(MCEPID,0)) S Y=MCEPID,Y(0)=$P(^DPT(MCEPID,0),"^") Q 0 | 
|---|
| 114 | Q MCERR | 
|---|