1 | PXRMRDI ; SLC/PKR - Routines to support RDI list building. ;07/27/2006
|
---|
2 | ;;2.0;CLINICAL REMINDERS;**4**;Feb 04, 2005;Build 21
|
---|
3 | ;=========================================================
|
---|
4 | APPERR(TYPE) ;Handle errors getting appointment data.
|
---|
5 | N ECODE,NL,TIME,USER
|
---|
6 | S USER=$S($D(ZTQUEUED):DBDUZ,1:DUZ)
|
---|
7 | S TIME=$$NOW^XLFDT
|
---|
8 | S TIME=$$FMTE^XLFDT(TIME)
|
---|
9 | K ^TMP("PXRMXMZ",$J)
|
---|
10 | S ^TMP("PXRMXMZ",$J,1,0)="The "_TYPE_" requested by "_$$GET1^DIQ(200,USER,.01)_" on "
|
---|
11 | S ^TMP("PXRMXMZ",$J,2,0)=TIME_" requires appointment data which could not be obtained"
|
---|
12 | S ^TMP("PXRMXMZ",$J,3,0)="from the Scheduling database due to the following error(s):"
|
---|
13 | S ECODE=0,NL=3
|
---|
14 | F S ECODE=$O(^TMP($J,"SDAMA301",ECODE)) Q:ECODE="" D
|
---|
15 | . S NL=NL+1,^TMP("PXRMXMZ",$J,NL,0)=" "_^TMP($J,"SDAMA301",ECODE)
|
---|
16 | D SEND^PXRMMSG("Scheduling database error(s)",1)
|
---|
17 | K ^TMP($J,"SDAMA301")
|
---|
18 | Q
|
---|
19 | ;
|
---|
20 | ;=========================================================
|
---|
21 | APPL(NGET,BDT,EDT,PLIST,PARAM) ;List type computed finding that returns
|
---|
22 | ;a list of patients with appointments in the date range BDT to EDT.
|
---|
23 | N FILTER,FLDS,RESULT
|
---|
24 | K ^TMP($J,PLIST),^TMP($J,"SDAMA301")
|
---|
25 | I BDT<2000000 S BDT=2000101
|
---|
26 | S FILTER(1)=BDT_";"_EDT
|
---|
27 | S FILTER("SORT")="P"
|
---|
28 | ;Set the rest of the filter nodes.
|
---|
29 | D SFILTER(PARAM,.FILTER,.FLDS)
|
---|
30 | ;DBIA #4433
|
---|
31 | S RESULT=$$SDAPI^SDAMA301(.FILTER)
|
---|
32 | I RESULT=-1 D APPERR("Patient List build") Q
|
---|
33 | N COUNT,DATE,DFN,DONE,ITEM
|
---|
34 | S DFN=""
|
---|
35 | F S DFN=$O(^TMP($J,"SDAMA301",DFN)) Q:DFN="" D
|
---|
36 | . S (COUNT,DONE)=0,DATE=""
|
---|
37 | . F S DATE=$O(^TMP($J,"SDAMA301",DFN,DATE),-1) Q:(DONE)!(DATE="") D
|
---|
38 | .. S COUNT=COUNT+1
|
---|
39 | .. S ITEM=$P(^TMP($J,"SDAMA301",DFN,DATE),U,2)
|
---|
40 | .. S ^TMP($J,PLIST,DFN,COUNT)=U_DATE_U_44_U_$P(ITEM,";",1)_U_$P(ITEM,";",2)
|
---|
41 | .. I COUNT=NGET S DONE=1
|
---|
42 | K ^TMP($J,"SDAMA301"),^TMP($J,"HLOCL")
|
---|
43 | Q
|
---|
44 | ;
|
---|
45 | ;=========================================================
|
---|
46 | PAPPL(DFN,NGET,BDT,EDT,NFOUND,TEST,DATE,VALUE,TEXT) ;Multiple type computed
|
---|
47 | ;finding that returns a list appointments for a patient.
|
---|
48 | N FILTER,FLDS,PARAM,RESULT
|
---|
49 | K ^TMP($J,"SDAMA301")
|
---|
50 | S PARAM=TEST K TEST
|
---|
51 | S NFOUND=0
|
---|
52 | I BDT<2000000 S BDT=2000101
|
---|
53 | S FILTER(1)=BDT_";"_EDT
|
---|
54 | S FILTER(4)=DFN
|
---|
55 | S FILTER("SORT")="P"
|
---|
56 | ;Set the rest of the filter nodes.
|
---|
57 | D SFILTER(PARAM,.FILTER,.FLDS)
|
---|
58 | ;DBIA #4433
|
---|
59 | S RESULT=$$SDAPI^SDAMA301(.FILTER)
|
---|
60 | I RESULT=-1 D APPERR("Computed finding evaluation") Q
|
---|
61 | N APPDATE,IND,DONE,IND,ITEM
|
---|
62 | S APPDATE="",DONE=0
|
---|
63 | F S APPDATE=$O(^TMP($J,"SDAMA301",DFN,APPDATE),-1) Q:(DONE)!(APPDATE="") D
|
---|
64 | . S NFOUND=NFOUND+1
|
---|
65 | . S TEST(NFOUND)=1,DATE(NFOUND)=APPDATE
|
---|
66 | . S VALUE(NFOUND,"VALUE")=^TMP($J,"SDAMA301",DFN,APPDATE)
|
---|
67 | . I NFOUND=NGET S DONE=1
|
---|
68 | K ^TMP($J,"SDAMA301"),^TMP($J,"HLOCL")
|
---|
69 | Q
|
---|
70 | ;
|
---|
71 | ;=========================================================
|
---|
72 | SFILTER(PARAM,FILTER,FLDS) ;Parse the PARMETER and set the appropriate
|
---|
73 | ;fields.
|
---|
74 | N IND,LL,P1,P2,STATUS,TEMP
|
---|
75 | S (FLDS,LL,STATUS)=""
|
---|
76 | F IND=1:1:$L(PARAM,U) D
|
---|
77 | . S TEMP=$P(PARAM,U,IND)
|
---|
78 | . S P1=$P(TEMP,":",1),P2=$P(TEMP,":",2)
|
---|
79 | . I P1="FLDS" S FLDS=$TR(P2,",",";") Q
|
---|
80 | . I P1="LL" S LL=P2 Q
|
---|
81 | . I P1="STATUS" S STATUS=$TR(P2,",",";") Q
|
---|
82 | S FILTER("FLDS")=$S(FLDS="":"1;2",1:FLDS)
|
---|
83 | S FILTER(3)=$S(STATUS="":"I;R",1:STATUS)
|
---|
84 | I LL="" Q
|
---|
85 | S LL=$O(^PXRMD(810.9,"B",LL,""))
|
---|
86 | D LOCLIST^PXRMLOCF(LL,"HLOCL")
|
---|
87 | S FILTER(2)="^TMP($J,""HLOCL"","
|
---|
88 | Q
|
---|
89 | ;
|
---|
90 | ;=========================================================
|
---|
91 | TFL(DFN,NGET,BDT,EDT,NFOUND,TEST,DATE,VALUE,TEXT) ;Multiple type computed
|
---|
92 | ;finding for a patient's treating facility list.
|
---|
93 | N DONE,IND,NOW,SDIR,TDATE,TFL,TFLD
|
---|
94 | S NFOUND=0
|
---|
95 | ;DBIA #2990
|
---|
96 | D TFL^VAFCTFU1(.TFL,DFN)
|
---|
97 | I +TFL(1)=-1 Q
|
---|
98 | S NOW=$$NOW^PXRMDATE
|
---|
99 | S (DONE,IND)=0
|
---|
100 | F S IND=$O(TFL(IND)) Q:(DONE)!(IND="") D
|
---|
101 | . S NFOUND=NFOUND+1
|
---|
102 | . S TEST(NFOUND)=1,DATE(NFOUND)=NOW
|
---|
103 | . S VALUE(NFOUND,"VALUE")=TFL(IND)
|
---|
104 | . I NFOUND=NGET S DONE=1 Q
|
---|
105 | F IND=1:1:NFOUND S VALUE(IND,"NUM FACILITIES")=NFOUND
|
---|
106 | Q
|
---|
107 | ;
|
---|