[613] | 1 | PXRMLDR ; SLC/PKR - Load Definitions and terms for evaluation. ;08/09/2004
|
---|
| 2 | ;;2.0;CLINICAL REMINDERS;;Feb 04, 2005
|
---|
| 3 | ;
|
---|
| 4 | ;===================================
|
---|
| 5 | DEF(DEFIEN,DEFARR) ;Load those portions of the definition needed for
|
---|
| 6 | ;evaluation.
|
---|
| 7 | K DEFARR
|
---|
| 8 | S DEFARR("IEN")=DEFIEN
|
---|
| 9 | I '$D(^PXD(811.9,DEFIEN)) S DEFARR("DNE")="" Q
|
---|
| 10 | N FTYPE,IND,JND,STL
|
---|
| 11 | S STL=0
|
---|
| 12 | S DEFARR(0)=^PXD(811.9,DEFIEN,0)
|
---|
| 13 | ;Baseline
|
---|
| 14 | S IND=0
|
---|
| 15 | F S IND=+$O(^PXD(811.9,DEFIEN,7,IND)) Q:IND=0 D
|
---|
| 16 | . S DEFARR(7,IND,0)=^PXD(811.9,DEFIEN,7,IND,0)
|
---|
| 17 | . S DEFARR(7,IND,3)=^PXD(811.9,DEFIEN,7,IND,3)
|
---|
| 18 | ;Load the findings multiple.
|
---|
| 19 | S IND=0
|
---|
| 20 | F S IND=+$O(^PXD(811.9,DEFIEN,20,IND)) Q:IND=0 D
|
---|
| 21 | . S DEFARR(20,IND,0)=^PXD(811.9,DEFIEN,20,IND,0)
|
---|
| 22 | . S DEFARR(20,IND,3)=$G(^PXD(811.9,DEFIEN,20,IND,3))
|
---|
| 23 | . S DEFARR(20,IND,6)=$G(^PXD(811.9,DEFIEN,20,IND,6))
|
---|
| 24 | . S DEFARR(20,IND,10)=$G(^PXD(811.9,DEFIEN,20,IND,10))
|
---|
| 25 | . S DEFARR(20,IND,11)=$G(^PXD(811.9,DEFIEN,20,IND,11))
|
---|
| 26 | . S DEFARR(20,IND,15)=$G(^PXD(811.9,DEFIEN,20,IND,15))
|
---|
| 27 | . S JND=0
|
---|
| 28 | . F S JND=+$O(^PXD(811.9,DEFIEN,20,IND,5,JND)) Q:JND=0 D
|
---|
| 29 | .. S DEFARR(20,IND,5,JND)=^PXD(811.9,DEFIEN,20,IND,5,JND,0)
|
---|
| 30 | M DEFARR("E")=^PXD(811.9,DEFIEN,20,"E")
|
---|
| 31 | ;Load the function findings.
|
---|
| 32 | S IND=0
|
---|
| 33 | F S IND=+$O(^PXD(811.9,DEFIEN,25,IND)) Q:IND=0 D
|
---|
| 34 | . M DEFARR(25,"FF"_IND)=^PXD(811.9,DEFIEN,25,IND)
|
---|
| 35 | ;Load the logic fields.
|
---|
| 36 | S DEFARR(31)=$G(^PXD(811.9,DEFIEN,31))
|
---|
| 37 | S DEFARR(32)=$G(^PXD(811.9,DEFIEN,32))
|
---|
| 38 | S DEFARR(35)=$G(^PXD(811.9,DEFIEN,35))
|
---|
| 39 | S DEFARR(36)=$G(^PXD(811.9,DEFIEN,36))
|
---|
| 40 | S DEFARR(40)=$G(^PXD(811.9,DEFIEN,40))
|
---|
| 41 | S DEFARR(42)=$G(^PXD(811.9,DEFIEN,42))
|
---|
| 42 | ;Load the custom date due fields.
|
---|
| 43 | S DEFARR(45)=$G(^PXD(811.9,DEFIEN,45))
|
---|
| 44 | I $L(DEFARR(45))>0 D
|
---|
| 45 | . M DEFARR(46)=^PXD(811.9,DEFIEN,46)
|
---|
| 46 | . M DEFARR(47)=^PXD(811.9,DEFIEN,47)
|
---|
| 47 | . K DEFARR(47,0),DEFARR(47,"B")
|
---|
| 48 | ;Load the logic found/not found text fields.
|
---|
| 49 | S DEFARR(62)=$G(^PXD(811.9,DEFIEN,62))
|
---|
| 50 | S DEFARR(67)=$G(^PXD(811.9,DEFIEN,67))
|
---|
| 51 | S DEFARR(72)=$G(^PXD(811.9,DEFIEN,72))
|
---|
| 52 | S DEFARR(77)=$G(^PXD(811.9,DEFIEN,77))
|
---|
| 53 | ;Check for finding list strings too long.
|
---|
| 54 | I DEFARR(32)=-1 S STL=1,FTYPE="cohort"
|
---|
| 55 | I DEFARR(36)=-1 S STL=1,FTYPE="resolution"
|
---|
| 56 | I DEFARR(40)=-1 S STL=1,FTYPE="age"
|
---|
| 57 | I DEFARR(42)=-1 S STL=1,FTYPE="information"
|
---|
| 58 | I STL S $P(DEFARR(0),U,6,7)=1_U_$$NOW^XLFDT D ERRMSG^PXRMLOGX(FTYPE)
|
---|
| 59 | Q
|
---|
| 60 | ;
|
---|
| 61 | ;===================================
|
---|
| 62 | EDITFM0(FINDING,FIELD,VALUE,FARR) ;For finding number FINDING set the
|
---|
| 63 | ;field named field to the value VALUE in FARR.
|
---|
| 64 | N NTP,PIECE
|
---|
| 65 | S NTP("MINIMUM AGE")=2,NTP("MAXIMUM AGE")=3,NTP("REMINDER FREQUENCY")=4
|
---|
| 66 | S NTP("RANK FREQUENCY")=5,NTP("USE IN RESOLUTION LOGIC")=6
|
---|
| 67 | S NTP("USE IN PATIENT COHORT LOGIC")=7,NTP("BEGINNING DATE/TIME")=8
|
---|
| 68 | S NTP("USE INACTIVE PROBLEMS")=9,NTP("WITHIN CATEGORY RANK")=10
|
---|
| 69 | S NTP("ENDING DATE/TIME")=11,NTP("MH SCALE")=12
|
---|
| 70 | S NTP("RX TYPE")=13,NTP("OCCURRENCE COUNT")=14
|
---|
| 71 | S PIECE=NTP(FIELD)
|
---|
| 72 | S $P(FARR(20,FINDING,0),U,PIECE)=VALUE
|
---|
| 73 | Q
|
---|
| 74 | ;
|
---|
| 75 | ;===================================
|
---|
| 76 | TAX(TAXIEN,TAXARR) ;Load an expanded taxonomy into TAXARR.
|
---|
| 77 | I '$D(^PXD(811.2,TAXIEN)) Q
|
---|
| 78 | ;Make sure the taxonomy has been expanded.
|
---|
| 79 | D CHECK^PXRMBXTL(TAXIEN,"")
|
---|
| 80 | I '$$LOCKXTL^PXRMBXTL(TAXIEN) D Q
|
---|
| 81 | . S TAXARR(0)="NO LOCK FOR TAXONOMY "_TAXIEN
|
---|
| 82 | N CFN,NODE,NNODE,SFN
|
---|
| 83 | S TAXARR(0)=^PXD(811.3,TAXIEN,0)
|
---|
| 84 | M TAXARR(71)=^PXD(811.3,TAXIEN,71,"RCPTP")
|
---|
| 85 | M TAXARR(80)=^PXD(811.3,TAXIEN,80,"ICD9P")
|
---|
| 86 | M TAXARR(80.1)=^PXD(811.3,TAXIEN,80.1,"ICD0P")
|
---|
| 87 | M TAXARR(81)=^PXD(811.3,TAXIEN,81,"ICPTP")
|
---|
| 88 | S SFN=0
|
---|
| 89 | F S SFN=+$O(^PXD(811.3,TAXIEN,"PDS",SFN)) Q:SFN=0 D
|
---|
| 90 | . S CFN=0
|
---|
| 91 | . F S CFN=+$O(^PXD(811.3,TAXIEN,"PDS",SFN,1,CFN)) Q:CFN=0 D
|
---|
| 92 | .. S TAXARR("PDS",SFN,CFN)=^PXD(811.3,TAXIEN,"PDS",SFN,1,CFN,0)
|
---|
| 93 | .. S NNODE=$P(TAXARR("PDS",SFN,CFN),U,2)
|
---|
| 94 | .. F NODE=1:1:NNODE S TAXARR("PDS",SFN,CFN,NODE)=^PXD(811.3,TAXIEN,"PDS",SFN,1,CFN,1,NODE,0)
|
---|
| 95 | D ULOCKXTL^PXRMBXTL(TAXIEN)
|
---|
| 96 | S TAXARR("IEN")=TAXIEN
|
---|
| 97 | S TAXARR(811.2,0)=^PXD(811.2,TAXIEN,0)
|
---|
| 98 | Q
|
---|
| 99 | ;
|
---|
| 100 | ;===================================
|
---|
| 101 | TERM(TERMIEN,TERMARR) ;Load those portions of the term needed for
|
---|
| 102 | ;evaluation.
|
---|
| 103 | I '$D(^PXRMD(811.5,TERMIEN)) Q
|
---|
| 104 | K TERMARR
|
---|
| 105 | N IND,JND
|
---|
| 106 | S TERMARR(0)=^PXRMD(811.5,TERMIEN,0)
|
---|
| 107 | ;Load the findings multiple.
|
---|
| 108 | S IND=0
|
---|
| 109 | F S IND=+$O(^PXRMD(811.5,TERMIEN,20,IND)) Q:IND=0 D
|
---|
| 110 | . S TERMARR(20,IND,0)=^PXRMD(811.5,TERMIEN,20,IND,0)
|
---|
| 111 | . S TERMARR(20,IND,3)=$G(^PXRMD(811.5,TERMIEN,20,IND,3))
|
---|
| 112 | . S TERMARR(20,IND,10)=$G(^PXRMD(811.5,TERMIEN,20,IND,10))
|
---|
| 113 | . S TERMARR(20,IND,11)=$G(^PXRMD(811.5,TERMIEN,20,IND,11))
|
---|
| 114 | . S TERMARR(20,IND,15)=$G(^PXRMD(811.5,TERMIEN,20,IND,15))
|
---|
| 115 | . S JND=0
|
---|
| 116 | . F S JND=+$O(^PXRMD(811.5,TERMIEN,20,IND,5,JND)) Q:JND=0 D
|
---|
| 117 | .. S TERMARR(20,IND,5,JND)=^PXRMD(811.5,TERMIEN,20,IND,5,JND,0)
|
---|
| 118 | M TERMARR("E")=^PXRMD(811.5,TERMIEN,20,"E")
|
---|
| 119 | S TERMARR("IEN")=TERMIEN
|
---|
| 120 | Q
|
---|
| 121 | ;
|
---|