| 1 | SPNLUTL1 ;HISC/WAA/CM-SCD REGISTRY FILE UTILITIES #2 ;8/6/96  15:51 | 
|---|
| 2 | ;;2.0;Spinal Cord Dysfunction;**12,14**;01/02/1997 | 
|---|
| 3 | ; | 
|---|
| 4 | ; This routine is a utility routine that will contain the code | 
|---|
| 5 | ; that will be used in Screen Manager calls. | 
|---|
| 6 | ; | 
|---|
| 7 | ;EN1(SPNLDFN) | 
|---|
| 8 | ; This call is use in the SCREENMAN form SPNLPFM1.  It will | 
|---|
| 9 | ; load several varables that are going to be passed back to | 
|---|
| 10 | ; The calling form. | 
|---|
| 11 | ;INPUT: | 
|---|
| 12 | ; SPNLDFN  = Patient DFN | 
|---|
| 13 | ;OUTPUT: | 
|---|
| 14 | ; SPNLSSN  = Patient SSN | 
|---|
| 15 | ; SPNLDOB  = Patient date of birth | 
|---|
| 16 | ; SPNLDEAD = Patient date of death | 
|---|
| 17 | ; SPNLINDC = SCI/SCD patient indicator | 
|---|
| 18 | ; SPNLPHON = Patient phone number | 
|---|
| 19 | ; | 
|---|
| 20 | ;EN2 | 
|---|
| 21 | ; This function will is to determine if a patient has a given | 
|---|
| 22 | ; reaction. | 
|---|
| 23 | ;INPUT: | 
|---|
| 24 | ; SPNLDFN  = Patient DFN | 
|---|
| 25 | ; SPNLETO  = Freetext of Patient Etiology | 
|---|
| 26 | ;OUTPUT: | 
|---|
| 27 | ;   1 = Patient has the given Etiology | 
|---|
| 28 | ;   0 = Patient doesn't have the Etiology | 
|---|
| 29 | ;  "" = Etiology doesn't exist | 
|---|
| 30 | ; | 
|---|
| 31 | ;EN3 | 
|---|
| 32 | ; This function will is to determine if a patient has a given | 
|---|
| 33 | ; reaction for the current entry. | 
|---|
| 34 | ;INPUT: | 
|---|
| 35 | ; SPNLDFN  = Patient DFN | 
|---|
| 36 | ; SPNLETO  = Freetext of Patient Etiology | 
|---|
| 37 | ;OUTPUT: | 
|---|
| 38 | ;   1 = Patient has the given Etiology | 
|---|
| 39 | ;   0 = Patient doesn't have the Etiology | 
|---|
| 40 | ;  "" = Etiology doesn't exist | 
|---|
| 41 | ; | 
|---|
| 42 | ;EN4 | 
|---|
| 43 | ; This function will determine if a patient has a given Type of CAUSE. | 
|---|
| 44 | ;INPUT: | 
|---|
| 45 | ;  SPNLDFN  = Patient DFN | 
|---|
| 46 | ;  SPNLTYPE = Type of CAUSE | 
|---|
| 47 | ;             [Values to be passed are TC, NTC, B, U] | 
|---|
| 48 | ;OUTPUT | 
|---|
| 49 | ;    1 = Patient has That type of cause | 
|---|
| 50 | ;    0 = Patient doesn't have that cause | 
|---|
| 51 | ;   "" = Error in function | 
|---|
| 52 | ; | 
|---|
| 53 | ;EN5 | 
|---|
| 54 | ; This function will total up all the Chart scors for a patient. | 
|---|
| 55 | ;INPUT: | 
|---|
| 56 | ;   SPNFDFN = Patient DFN | 
|---|
| 57 | ;OUTPUT; | 
|---|
| 58 | ;        "" = Error | 
|---|
| 59 | ;       1 to 500 = Value of all chart scores added. | 
|---|
| 60 | ; | 
|---|
| 61 | EN1(SPNLDFN) ; Load Form SPNLPFM1 | 
|---|
| 62 | N SPND1 | 
|---|
| 63 | Q:SPNLDFN<1 | 
|---|
| 64 | S (SPNLSSN,SPNLDOB,SPNLDEAD,SPNLINDC,SPNLPHON)="" | 
|---|
| 65 | S SPNLSSN=$$GET^DDSVAL(2,.SPNLDFN,.09,1) | 
|---|
| 66 | S Y=$$GET^DDSVAL(2,.SPNLDFN,.03,1) X ^DD("DD") S SPNLDOB=Y K Y | 
|---|
| 67 | S Y=$$GET^DDSVAL(2,.SPNLDFN,.351,1) I Y>1 X ^DD("DD") S SPNLDEAD=Y K Y | 
|---|
| 68 | S SPNLINDC=$$GET^DDSVAL(2,.SPNLDFN,57.4,"","E") | 
|---|
| 69 | S SPNLPHON=$$GET^DDSVAL(2,.SPNLDFN,.131,1) | 
|---|
| 70 | S SPND1=0 | 
|---|
| 71 | F  S SPND1=$O(^SPNL(154,SPNLDFN,"E",SPND1)) Q:SPND1<1  D | 
|---|
| 72 | . N SPNX,SPNCK | 
|---|
| 73 | . S SPNX=SPND1 | 
|---|
| 74 | . S SPNX(1)=SPNLDFN | 
|---|
| 75 | . S SPNCK=$$EN3^SPNLUTL1(.SPNX,"OTHER") | 
|---|
| 76 | . D UNED^DDSUTL("DESC OTHER","SPNLPBLK2",1,('SPNCK),SPND1_","_SPNLDFN_",") | 
|---|
| 77 | . Q | 
|---|
| 78 | Q | 
|---|
| 79 | EN2(SPNLDFN,SPNLETO) ; Find patient Etiology | 
|---|
| 80 | N SPNLETO1,SPNLIEN,SPNLFLG | 
|---|
| 81 | S SPNLFLG="" | 
|---|
| 82 | I SPNLDFN<1!(SPNLETO="") Q SPNLFLG | 
|---|
| 83 | S SPNLETO1=$O(^SPNL(154.03,"B",SPNLETO,0)) I SPNLETO1<1 Q SPNLFLG | 
|---|
| 84 | S SPNLFLG=0 | 
|---|
| 85 | S SPNLIEN=0 F  S SPNLIEN=$O(^SPNL(154,SPNLDFN,"E",SPNLIEN)) Q:SPNLIEN<1  I $P($G(^SPNL(154,SPNLDFN,"E",SPNLIEN,0)),U)=SPNLETO1 S SPNLFLG=1 Q | 
|---|
| 86 | Q SPNLFLG | 
|---|
| 87 | EN3(SPNLDA,SPNLETO) ; Check to see if a given entry us of a given type. | 
|---|
| 88 | N SPNLTXT,SPNLFLG | 
|---|
| 89 | S SPNLFLG=0 | 
|---|
| 90 | S SPNLET1=+$P(^SPNL(154,SPNLDA(1),"E",SPNLDA,0),U) | 
|---|
| 91 | S SPNLTXT=$P($G(^SPNL(154.03,SPNLET1,0)),U) | 
|---|
| 92 | I SPNLTXT[SPNLETO S SPNLFLG=1 | 
|---|
| 93 | Q SPNLFLG | 
|---|
| 94 | EN4(SPNLDFN,SPNLTYPE) ; Find patient Type of cause. | 
|---|
| 95 | N SPNLIEN,SPNLETO,SPNLFLG | 
|---|
| 96 | S SPNLFLG="" | 
|---|
| 97 | I "^TC^NTC^B^U^"'[(U_SPNLTYPE_U) Q SPNLFLG | 
|---|
| 98 | S SPNLFLG=0 | 
|---|
| 99 | I SPNLTYPE="B" G BOTH | 
|---|
| 100 | S SPNLIEN=0 F  S SPNLIEN=$O(^SPNL(154,SPNLDFN,"E",SPNLIEN)) Q:SPNLIEN<1  S SPNLETO=+$P($G(^SPNL(154,SPNLDFN,"E",SPNLIEN,0)),U) I $P($G(^SPNL(154.03,SPNLETO,0)),U,2)=SPNLTYPE S SPNLFLG=1 Q | 
|---|
| 101 | BOTH I SPNLTYPE="B" S SPNLIEN=0 F  S SPNLIEN=$O(^SPNL(154,SPNLDFN,"E",SPNLIEN)) Q:SPNLIEN<1  S SPNLETO=+$P($G(^SPNL(154,SPNLDFN,"E",SPNLIEN,0)),U) I $P($G(^SPNL(154.03,SPNLETO,0)),U,2)'="U" S SPNLFLG=1 Q | 
|---|
| 102 | Q SPNLFLG | 
|---|
| 103 | EN5(SPNFDFN) ; Add CHART SCORES | 
|---|
| 104 | N SPNFVAL,SPNFPC | 
|---|
| 105 | S SPNFVAL="" | 
|---|
| 106 | F SPNFPC=4.1:.1:4.6 S SPNFVAL=($$GET^DDSVAL(154.1,.SPNFDFN,SPNFPC,"","I"))+SPNFVAL | 
|---|
| 107 | Q SPNFVAL | 
|---|