| 1 | DVBCHS1 ;ALB/JRP - C & P EXTRACT FOR HEALTH SUMMARY (CONT);11-JAN-95 | 
|---|
| 2 | ;;2.7;AMIE;;Apr 10, 1995 | 
|---|
| 3 | OUT0(PTR,ARR) ;SET NODE ZERO OF OUTPUT | 
|---|
| 4 | ;INPUT  : PTR - Pointer to 2507 EXAM file (#396.4) | 
|---|
| 5 | ;         ARR - Where to place output (full global reference) | 
|---|
| 6 | ;OUTPUT : None | 
|---|
| 7 | ;         See HSCP() for format of output array | 
|---|
| 8 | ;NOTES  : All input is assumed to exist (no error checking) | 
|---|
| 9 | ; | 
|---|
| 10 | N CODE,FMDATE,TYPE,DOCTOR,PRIORITY | 
|---|
| 11 | N INVDATE,NODE,REQPTR,TYPEPTR,TMP | 
|---|
| 12 | ;GET ZERO NODE OF 2507 EXAM | 
|---|
| 13 | S NODE=$G(^DVB(396.4,PTR,0)) | 
|---|
| 14 | ;GET INFO OFF OF NODE | 
|---|
| 15 | S REQPTR=+$P(NODE,"^",2) | 
|---|
| 16 | S TYPEPTR=+$P(NODE,"^",3) | 
|---|
| 17 | S FMDATE=+$P(NODE,"^",6) | 
|---|
| 18 | S DOCTOR=$P(NODE,"^",7) | 
|---|
| 19 | S:(DOCTOR="") DOCTOR="UNKNOWN" | 
|---|
| 20 | ;GET PRIORITY FROM ZERO NODE OF 2507 REQUEST | 
|---|
| 21 | S NODE=$G(^DVB(396.3,REQPTR,0)) | 
|---|
| 22 | S TMP=$P(NODE,"^",10) | 
|---|
| 23 | ;CONVERT PRIORITY TO EXTERNAL FORMAT | 
|---|
| 24 | S PRIORITY="UNKNOWN" | 
|---|
| 25 | S:(TMP="T") PRIORITY="TERMINAL" | 
|---|
| 26 | S:(TMP="P") PRIORITY="POS" | 
|---|
| 27 | S:(TMP="OS") PRIORITY="ORIGINAL SC" | 
|---|
| 28 | S:(TMP="ON") PRIORITY="ORIGINAL NSC" | 
|---|
| 29 | S:(TMP="I") PRIORITY="INCREASE" | 
|---|
| 30 | S:(TMP="R") PRIORITY="REVIEW" | 
|---|
| 31 | S:(TMP="OTR") PRIORITY="OTHER" | 
|---|
| 32 | S:(TMP="E") PRIORITY="INSUFFICIENT EXAM" | 
|---|
| 33 | ;CONVERT EXAM TYPE TO EXTERNAL FORMAT | 
|---|
| 34 | S TYPE=$P($G(^DVB(396.6,TYPEPTR,0)),"^",1) | 
|---|
| 35 | S:('TYPEPTR) TYPE="UNKNOWN" | 
|---|
| 36 | ;DETERMINE CODE (BASED ON TRANSFER OUT/IN DATES) | 
|---|
| 37 | S NODE=$G(^DVB(396.4,PTR,"TRAN")) | 
|---|
| 38 | ;DONE AT LOCAL FACILITY | 
|---|
| 39 | S CODE=1 | 
|---|
| 40 | ;DONE AT REMOTE FACILITY | 
|---|
| 41 | S:($P(NODE,"^",1)'="") CODE=2 | 
|---|
| 42 | ;DONE AT LOCAL FACILITY FOR REMOTE FACILITY | 
|---|
| 43 | S:($P(NODE,"^",4)'="") CODE=3 | 
|---|
| 44 | ;CALCULATE INVERSE EXAM DATE | 
|---|
| 45 | S INVDATE=9999999-FMDATE | 
|---|
| 46 | ;PUT INFO INTO GLOBAL | 
|---|
| 47 | S @ARR@(INVDATE,TYPEPTR,0)=CODE_"^"_FMDATE_"^"_TYPE_"^"_DOCTOR_"^"_PRIORITY | 
|---|
| 48 | Q | 
|---|
| 49 | OUTRES(PTR,ARR) ;SET NODE 'RES' OF OUTPUT | 
|---|
| 50 | ;INPUT  : PTR - Pointer to 2507 EXAM file (#396.4) | 
|---|
| 51 | ;         ARR - Where to place output (full global reference) | 
|---|
| 52 | ;OUTPUT : None | 
|---|
| 53 | ;         See HSCP^DVBCHS0() for format of output array | 
|---|
| 54 | ;NOTES  : All input is assumed to exist (no error checking) | 
|---|
| 55 | ; | 
|---|
| 56 | N LINE,LINES,INVDATE,FMDATE,TYPEPTR,NODE | 
|---|
| 57 | ;GET EXAM DATE & TYPE | 
|---|
| 58 | S NODE=$G(^DVB(396.4,PTR,0)) | 
|---|
| 59 | S TYPEPTR=+$P(NODE,"^",3) | 
|---|
| 60 | S FMDATE=+$P(NODE,"^",6) | 
|---|
| 61 | ;CALCULATE INVERSE EXAM DATE | 
|---|
| 62 | S INVDATE=9999999-FMDATE | 
|---|
| 63 | ;PUT RESULTS INTO GLOBAL | 
|---|
| 64 | S LINE=0,LINES=1 | 
|---|
| 65 | F  S LINE=+$O(^DVB(396.4,PTR,"RES",LINE)) Q:('LINE)  D | 
|---|
| 66 | .S @ARR@(INVDATE,TYPEPTR,"RES",LINES)=$G(^DVB(396.4,PTR,"RES",LINE,0)) | 
|---|
| 67 | .S LINES=LINES+1 | 
|---|
| 68 | ;PUT NUMBER OF LINES INFO INTO GLOBAL | 
|---|
| 69 | S @ARR@(INVDATE,TYPEPTR,"RES",0)=LINES-1 | 
|---|
| 70 | Q | 
|---|