| 1 | SPNHS0 ;HIRMFO/JCC-HEALTH SUMMARY: SCD EXTRACT ;10/23/01  10:33 | 
|---|
| 2 | ;;2.0;Spinal Cord Dysfunction;**10,16**;01/02/1997 | 
|---|
| 3 | EN(SPNDFN,SPNBEG,SPNEND,SPNMAX) ; | 
|---|
| 4 | ; | 
|---|
| 5 | ;Required: | 
|---|
| 6 | ; SPNDFN = PATIENT file (#2) pointer | 
|---|
| 7 | ; SPNBEG = Beginning date | 
|---|
| 8 | ; SPNEND = Ending date | 
|---|
| 9 | ;Optional: | 
|---|
| 10 | ; SPNMAX = Maximum number of occurrences | 
|---|
| 11 | ;Returns: | 
|---|
| 12 | ; ^TMP("SPN",$J,0)=DATA FROM 154 | 
|---|
| 13 | ; ^TMP("SPN",$J,154,INVERSE_DATE_ONSET) = | 
|---|
| 14 | ; ^TMP("SPN",$J,154.1,INVERSE_DATE_RECORDED,SPNIEN)= | 
|---|
| 15 | ; | 
|---|
| 16 | I +SPNMAX'>0 S SPNMAX=999 | 
|---|
| 17 | K ^TMP("SPN",$J) | 
|---|
| 18 | I $O(^SPNL(154,"B",SPNDFN,0))'>0 G EXIT | 
|---|
| 19 | S SPNIEN=$O(^SPNL(154.1,"B",SPNDFN,0)) | 
|---|
| 20 | S SPNCNT=0,SPNDATE=SPNEND+.0000001 | 
|---|
| 21 | F  S SPNDATE=$O(^SPNL(154.1,"AB",SPNDFN,SPNDATE),-1) Q:SPNDATE'>0!(SPNCNT=SPNMAX)  D | 
|---|
| 22 | .I SPNDATE<SPNBEG Q | 
|---|
| 23 | .S SPNIEN=0 F  S SPNIEN=$O(^SPNL(154.1,"AB",SPNDFN,SPNDATE,SPNIEN)) Q:SPNIEN'>0  Q:SPNCNT=SPNMAX  D  ; | 
|---|
| 24 | ..I $$GET1^DIQ(154.1,SPNIEN,.02,"I")>2 Q  ; Must be a 4 or 7 level FIM | 
|---|
| 25 | ..S SPNDMS=$$GET1^DIQ(154.1,SPNIEN,999.03) | 
|---|
| 26 | ..S SPNDTY=$E($$GET1^DIQ(154.1,SPNIEN,.02),1,10) | 
|---|
| 27 | ..S SPNDCS=$$GET1^DIQ(154.1,SPNIEN,999.04) | 
|---|
| 28 | ..S SPNDTS=$$GET1^DIQ(154.1,SPNIEN,999.05) | 
|---|
| 29 | ..S ^TMP("SPN",$J,154.1,9999999-SPNDATE,SPNIEN)=SPNDATE_"^"_SPNDMS_"^"_SPNDCS_"^"_SPNDTS_"^"_SPNDTY | 
|---|
| 30 | ..S SPNCNT=SPNCNT+1 | 
|---|
| 31 | S SPNIEN=SPNDFN | 
|---|
| 32 | S SPNRS=$$GET1^DIQ(154,SPNIEN,.03) | 
|---|
| 33 | S SPNHI=$$GET1^DIQ(154,SPNIEN,2.1) | 
|---|
| 34 | S SPNIS=$$GET1^DIQ(154,SPNIEN,2.3) | 
|---|
| 35 | S SPNPC=$$GET1^DIQ(154,SPNIEN,8.1) | 
|---|
| 36 | S SPNCOR=$$GET1^DIQ(154,SPNIEN,8.2) | 
|---|
| 37 | S SPNCI=$$GET1^DIQ(154,SPNIEN,999.03) | 
|---|
| 38 | S SPNEP=$$GET1^DIQ(154,SPNIEN,999.04) | 
|---|
| 39 | S SPNMSST=$$GET1^DIQ(154,SPNIEN,2.2) | 
|---|
| 40 | S ^TMP("SPN",$J,0)=SPNRS_"^"_SPNHI_"^"_SPNIS_"^"_SPNCI_"^"_SPNEP_"^"_SPNPC_"^"_SPNCOR_"^"_SPNMSST | 
|---|
| 41 | S SPND1=0 F  S SPND1=$O(^SPNL(154,SPNIEN,"E",SPND1)) Q:SPND1'>0  D  ; | 
|---|
| 42 | .S SPNONI=$$GET1^DIQ(154.004,SPND1_","_SPNDFN_",",.02,"I")  ;DATE OF ONSET | 
|---|
| 43 | .S SPNON=$$GET1^DIQ(154.004,SPND1_","_SPNDFN_",",.02,"I")  ;DATE OF ONSET | 
|---|
| 44 | .S SPNET=$$GET1^DIQ(154.004,SPND1_","_SPNDFN_",",.01)  ;ETIOLOGY | 
|---|
| 45 | .S SPNCB=$$GET1^DIQ(154.004,SPND1_","_SPNDFN_",",999.01)  ;ONSET OF SCD CAUSED BY TRAUMA | 
|---|
| 46 | .S ^TMP("SPN",$J,154,(9999999-SPNONI)_"^"_SPND1)=SPNON_"^"_SPNET_"^"_SPNCB | 
|---|
| 47 | .Q | 
|---|
| 48 | EXIT ; | 
|---|
| 49 | K SPNRS,SPNHI,SPNIS,SPNCI,SPNEP,SPNON,SPNET,SPNCB,SPNDATE,SPNDMS,SPNDCS,SPNDTS,SPNCNT,SPNMAX,SPND1,SPNONI,SPNIEN,SPNDTY,SPNPC,SPNCOR,SPNMSST | 
|---|
| 50 | Q | 
|---|