| 1 | PXRMRPCB ; SLC/PJH - Functions returning REMINDER data ;01/03/2000
|
---|
| 2 | ;;2.0;CLINICAL REMINDERS;;Feb 04, 2005
|
---|
| 3 | Q
|
---|
| 4 | ;
|
---|
| 5 | EDL(ORY,OREM) ;return list of education topics for a reminder
|
---|
| 6 | ; ien^name^print name
|
---|
| 7 | ;
|
---|
| 8 | N DATA,EDIEN,EDNAME,EDPNAM,FIND,ELIST,OCNT,SUB
|
---|
| 9 | S SUB=0,OCNT=0
|
---|
| 10 | F S SUB=$O(^PXD(811.9,OREM,20,SUB)) Q:'SUB D
|
---|
| 11 | .S FIND=$P($G(^PXD(811.9,OREM,20,SUB,0)),U)
|
---|
| 12 | .I $P(FIND,";",2)="AUTTEDT(" D EDTP(FIND) Q
|
---|
| 13 | .I $P(FIND,";",2)="PXRMD(811.5," D EDTERM($P(FIND,";")) Q
|
---|
| 14 | Q
|
---|
| 15 | ;
|
---|
| 16 | EDTERM(TERM) ;Get any education topics on the reminder term
|
---|
| 17 | N TSUB,TFIND
|
---|
| 18 | S TSUB=0
|
---|
| 19 | F S TSUB=$O(^PXRMD(811.5,TERM,20,TSUB)) Q:'TSUB D
|
---|
| 20 | .S TFIND=$P($G(^PXRMD(811.5,TERM,20,TSUB,0)),U) Q:TFIND=""
|
---|
| 21 | .I $P(TFIND,U)["AUTTEDT(" D EDTP(TFIND)
|
---|
| 22 | Q
|
---|
| 23 | ;
|
---|
| 24 | EDTP(FIND) ;Get education topic name
|
---|
| 25 | S EDIEN=$P(FIND,";") Q:'EDIEN Q:$D(ELIST(EDIEN)) S ELIST(EDIEN)=""
|
---|
| 26 | S DATA=$G(^AUTTEDT(EDIEN,0)) Q:DATA=""
|
---|
| 27 | S EDPNAM=$P(DATA,U,4),EDNAME=$P(DATA,U)
|
---|
| 28 | S OCNT=OCNT+1,ORY(OCNT)=EDIEN_U_EDNAME_U_EDPNAM
|
---|
| 29 | Q
|
---|
| 30 | ;
|
---|
| 31 | EDU(ORY,OREDU) ;return education details in WP format
|
---|
| 32 | ; display text only
|
---|
| 33 | ;
|
---|
| 34 | N DIC,DR,DA,DIQ
|
---|
| 35 | K ^UTILITY("DIQ1",$J)
|
---|
| 36 | S DR=".01;.04;11;12"
|
---|
| 37 | S DIC=9999999.09
|
---|
| 38 | S DA=OREDU
|
---|
| 39 | S DIQ(0)="EN"
|
---|
| 40 | D EN^DIQ1
|
---|
| 41 | ;
|
---|
| 42 | ; Construct output array
|
---|
| 43 | N OCNT,SUB,SUB1,LIT,IC,LITS
|
---|
| 44 | S DIC=9999999.09,OCNT=0
|
---|
| 45 | S LITS="NAME : ;PRINT NAME : ;EDUCATIONAL OUTCOME : ;"
|
---|
| 46 | S LITS=LITS_"EDUCATIONAL STANDARDS : "
|
---|
| 47 | F IC=1:1 S SUB=$P(DR,";",IC),LIT=$P(LITS,";",IC) Q:SUB="" D
|
---|
| 48 | .S SUB1="",OCNT=OCNT+1,ORY(OCNT)=" "
|
---|
| 49 | .I IC>2 S ORY(OCNT+1)=LIT,LIT="",OCNT=OCNT+2,ORY(OCNT)=" "
|
---|
| 50 | .F S SUB1=$O(^UTILITY("DIQ1",$J,DIC,OREDU,SUB,SUB1)) Q:SUB1="" D
|
---|
| 51 | ..S OCNT=OCNT+1
|
---|
| 52 | ..S ORY(OCNT)=LIT_$G(^UTILITY("DIQ1",$J,DIC,OREDU,SUB,SUB1))
|
---|
| 53 | ..S LIT=""
|
---|
| 54 | K ^UTILITY("DIQ1",$J)
|
---|
| 55 | Q
|
---|
| 56 | ;
|
---|
| 57 | EDS(ORY,OREDU) ;return education subtopics
|
---|
| 58 | ; ien^name^sub-topic sequence number
|
---|
| 59 | ;
|
---|
| 60 | N DIC,DR,DA,DATA,DIQ,NODE,NULL,OCNT,REF,SUB,TEMP
|
---|
| 61 | N EDIEN,EDNAME,EDSEQ,EDPNAM
|
---|
| 62 | S NULL=1,OCNT=0
|
---|
| 63 | K ^UTILITY("DIQ1",$J)
|
---|
| 64 | F NODE=1:1 D Q:EDIEN=""
|
---|
| 65 | .S REF=9999999.091001
|
---|
| 66 | .S DR=10
|
---|
| 67 | .S DA(REF)=NODE
|
---|
| 68 | .S DR(REF)=".01;3"
|
---|
| 69 | .S DIC=9999999.09
|
---|
| 70 | .S DA=OREDU
|
---|
| 71 | .S DIQ(0)="EIN"
|
---|
| 72 | .D EN^DIQ1
|
---|
| 73 | .S EDIEN=$G(^UTILITY("DIQ1",$J,REF,NODE,.01,"I"))
|
---|
| 74 | .I EDIEN="" K ^UTILITY("DIQ1",$J) Q
|
---|
| 75 | .S EDNAME=$G(^UTILITY("DIQ1",$J,REF,NODE,.01,"E"))
|
---|
| 76 | .S EDSEQ=$G(^UTILITY("DIQ1",$J,REF,NODE,3,"E")) S:EDSEQ="" EDSEQ=" "
|
---|
| 77 | .S EDPNAM=$P($G(^AUTTEDT(EDIEN,0)),U,4)
|
---|
| 78 | .S TEMP(EDSEQ,EDIEN)=EDIEN_U_EDNAME_U_EDPNAM_U_EDSEQ
|
---|
| 79 | .K ^UTILITY("DIQ1",$J)
|
---|
| 80 | ;Output array in sequence order
|
---|
| 81 | S EDSEQ=""
|
---|
| 82 | F S EDSEQ=$O(TEMP(EDSEQ)) Q:EDSEQ="" D
|
---|
| 83 | .S EDIEN=""
|
---|
| 84 | .F S EDIEN=$O(TEMP(EDSEQ,EDIEN)) Q:EDIEN="" D
|
---|
| 85 | ..S OCNT=OCNT+1,ORY(OCNT)=TEMP(EDSEQ,EDIEN)
|
---|
| 86 | Q
|
---|