1 | IBDFN2 ;ALB/CJM - ENCOUNTER FORM - INTERFACE ROUTINES ;NOV 16,1992
|
---|
2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;**29,31,36,43**;APR 24, 1997
|
---|
3 | APPT ;returns appt date@time^date^time
|
---|
4 | N Y
|
---|
5 | S Y="" I IBAPPT S Y=IBAPPT K %DT D DD^%DT
|
---|
6 | S @IBARY=Y_"^"_$P(Y,"@")_"^"_$P(Y,"@",2)
|
---|
7 | Q
|
---|
8 | NOW ;returns date and time
|
---|
9 | ;FORMATS:
|
---|
10 | ; MMM DD, YYYY@HH:MM:SS at the "IB DATE@TIME" subscript
|
---|
11 | ; MMM DD,YYYY at the "IB DATE" subscript
|
---|
12 | ; HH:MM:SS at the "IB TIME" subscript
|
---|
13 | N Y,%,%H,%I,X
|
---|
14 | D NOW^%DTC S Y=% K %DT D DD^%DT
|
---|
15 | S ^TMP("IB",$J,"INTERFACES",+$G(DFN),"IB CURRENT DATE@TIME")=Y
|
---|
16 | S ^TMP("IB",$J,"INTERFACES",+$G(DFN),"IB CURRENT TIME")=$P(Y,"@",2)
|
---|
17 | S ^TMP("IB",$J,"INTERFACES",+$G(DFN),"IB CURRENT DATE")=$P(Y,"@")
|
---|
18 | Q
|
---|
19 | ;
|
---|
20 | SPSEMPLR ;returns spouse's employer,address, telephone
|
---|
21 | ;input variables - DFN
|
---|
22 | N ARY,CNT S CNT=1
|
---|
23 | S ARY="^TMP(""IB"",$J,""INTERFACES"",+$G(DFN))"
|
---|
24 | S VAOA("A")=6 D OAD^VADPT
|
---|
25 | I VAERR S (@ARY@("DPT SPOUSE'S EMPLOYER NAME"),@ARY@("DPT SPOUSE'S EMPLOYER TELEPHONE"),@ARY@("DPT SPOUSE'S EMPLOYER ADDRESS LINES"))="" Q
|
---|
26 | I VAOA(1)'="" S @ARY@("DPT SPOUSE'S EMPLOYER ADDRESS LINES",CNT)=VAOA(1),CNT=CNT+1
|
---|
27 | I VAOA(2)'="" S @ARY@("DPT SPOUSE'S EMPLOYER ADDRESS LINES",CNT)=VAOA(2),CNT=CNT+1
|
---|
28 | I VAOA(3)'="" S @ARY@("DPT SPOUSE'S EMPLOYER ADDRESS LINES",CNT)=VAOA(3),CNT=CNT+1
|
---|
29 | S @ARY@("DPT SPOUSE'S EMPLOYER ADDRESS LINES",CNT)=VAOA(4)_", "_$P(VAOA(5),"^",2)_" "_VAOA(6)
|
---|
30 | S @ARY@("DPT SPOUSE'S EMPLOYER TELEPHONE")=VAOA(8)
|
---|
31 | S @ARY@("DPT SPOUSE'S EMPLOYER NAME")=VAOA(9)
|
---|
32 | K VAOA,VAERR
|
---|
33 | Q
|
---|
34 | EMPLOYER ;returns employer,address, telephone
|
---|
35 | ;input variables - DFN
|
---|
36 | N ARY,CNT S CNT=1
|
---|
37 | S ARY="^TMP(""IB"",$J,""INTERFACES"",DFN)"
|
---|
38 | S VAOA("A")=5 D OAD^VADPT
|
---|
39 | I VAERR S (@ARY@("DPT PATIENT'S EMPLOYER NAME"),@ARY@("DPT PATIENT'S EMPLOYER TELEPHONE"),@ARY@("DPT PATIENT'S EMPLOYER ADDRESS LINES"))="" Q
|
---|
40 | I VAOA(1)'="" S @ARY@("DPT PATIENT'S EMPLOYER ADDRESS LINES",CNT)=VAOA(1),CNT=CNT+1
|
---|
41 | I VAOA(2)'="" S @ARY@("DPT PATIENT'S EMPLOYER ADDRESS LINES",CNT)=VAOA(2),CNT=CNT+1
|
---|
42 | I VAOA(3)'="" S @ARY@("DPT PATIENT'S EMPLOYER ADDRESS LINES",CNT)=VAOA(3),CNT=CNT+1
|
---|
43 | S @ARY@("DPT PATIENT'S EMPLOYER ADDRESS LINES",CNT)=VAOA(4)_", "_$P(VAOA(5),"^",2)_" "_VAOA(6)
|
---|
44 | S @ARY@("DPT PATIENT'S EMPLOYER TELEPHONE")=VAOA(8)
|
---|
45 | S @ARY@("DPT PATIENT'S EMPLOYER NAME")=VAOA(9)
|
---|
46 | K VAOA,VAERR
|
---|
47 | Q
|
---|
48 | MT ;returns means test data
|
---|
49 | N Y,RET,GET
|
---|
50 | S GET=$$LST^DGMTU(DFN)
|
---|
51 | S RET=$P(GET,"^",3)_"^"
|
---|
52 | S Y=$P(GET,"^",2) D DD^%DT
|
---|
53 | S RET=RET_Y_"^"_$P(GET,"^",4)
|
---|
54 | S @IBARY=RET
|
---|
55 | Q
|
---|
56 | ENROLL ;returns enrollment priority code and copay information
|
---|
57 | ;
|
---|
58 | N IBEP,IBEP1
|
---|
59 | ; --get enrollment priority code
|
---|
60 | S IBEP=$$PRIORITY^DGENA(DFN)
|
---|
61 | ;
|
---|
62 | ; --get copay information (yes or not)
|
---|
63 | S IBEP1=$$BIL^DGMTUB(DFN,DT)
|
---|
64 | S $P(IBEP,"^",2)=$S(IBEP1=1:"Y",1:"N")
|
---|
65 | S @IBARY=IBEP
|
---|
66 | Q
|
---|
67 | ALLERGY ;outputs a list of the patient's allergies
|
---|
68 | ;piece #1=allergy name,#2=type of allergy(FOOD/DRUG/OTHER),#3=type of allergy(F/D/O),#4=VERFIED?(YES/NO),#5=TRUE ALLERGEN(YES/NO)
|
---|
69 | N GMRA,GMRAL,NODE,I,COUNT,TYPE
|
---|
70 | D:$L($T(GMRADPT^GMRADPT)) ^GMRADPT
|
---|
71 | I GMRAL=0 S COUNT=1,@IBARY@(COUNT)="NKA" Q
|
---|
72 | S (COUNT,I)=0 F S I=$O(GMRAL(I)) Q:'I D
|
---|
73 | .S COUNT=COUNT+1
|
---|
74 | .S NODE=$G(GMRAL(I))
|
---|
75 | .S TYPE=$P(NODE,"^",3)
|
---|
76 | .S @IBARY@(COUNT)=$P(NODE,"^",2)_"^"_$S(TYPE="D":"DRUG",TYPE="F":"FOOD",TYPE="O":"OTHER",1:"")_"^"_TYPE_"^"_$S($P(NODE,"^",4)=1:"YES",1:"NO")_"^"_$S($P(NODE,"^",5)=0:"YES",$P(NODE,"^",5)=1:"NO",1:"")
|
---|
77 | Q
|
---|
78 | ;
|
---|
79 | PRMT ; -- print a 1010f if required or will expire in 357.09;.1 days
|
---|
80 | ; called from print manger
|
---|
81 | ; requires dfn, ibappt=appointment date
|
---|
82 | ;
|
---|
83 | N IBDMT,IBDMT1,IBDMT2,DGMTI,DGMTDT,DGMTYPT,DGOPT
|
---|
84 | S IBDMT1=$$LST^DGMTU(DFN,DT,1) ; means test
|
---|
85 | S IBDMT2=$$LST^DGMTU(DFN,DT,2) ; copay test
|
---|
86 | I IBDMT2="",IBDMT1="" G PRMTQ
|
---|
87 | S IBDMT=$S(IBDMT2="":IBDMT1,IBDMT1="":IBDMT2,$P(IBDMT1,"^",2)'<$P(IBDMT2,"^",2):IBDMT1,1:IBDMT2)
|
---|
88 | S DGMTYPT=$S(IBDMT=IBDMT2:2,1:1) ; set type of test
|
---|
89 | S DGMTI=+IBDMT,DGMTDT=$P(IBDMT,"^",2)
|
---|
90 | S DGOPT=1 ;pretend were from registration, don't close device when done
|
---|
91 | S STATUS=$P(IBDMT,"^",4)
|
---|
92 | I $S(STATUS="R":0,STATUS="N":1,STATUS="L":1,STATUS="I":0,$$FMDIFF^XLFDT(IBAPPT,DGMTDT,1)>(365-$S($P($G(^IBD(357.09,1,0)),"^",10):$P(^(0),"^",10),1:30)):0,1:1) G PRMTQ ;not required within params
|
---|
93 | ;
|
---|
94 | I STATUS="R" D GETMT I IBDMT1="" Q
|
---|
95 | D START^DGMTP
|
---|
96 | PRMTQ Q
|
---|
97 | ;
|
---|
98 | GETMT ;Since status is required find last valid means test
|
---|
99 | ;
|
---|
100 | S IBDMT=$$LVMT^DGMTU(DFN,DT) ; means test
|
---|
101 | S DGMTYPT=1 ; set type of test
|
---|
102 | S DGMTI=+IBDMT,DGMTDT=$P(IBDMT,"^",2)
|
---|
103 | Q
|
---|
104 | ;
|
---|
105 | ;
|
---|
106 | MSTSTAT ;-- Get patient's MST status for EF display block
|
---|
107 | ; Input:
|
---|
108 | ; DFN
|
---|
109 | ;
|
---|
110 | ; Output:
|
---|
111 | ; Calls API $$GETSTAT^DGMSTAPI(DFN):
|
---|
112 | ; Piece 1 -- MST Status Code (Y, N, D, or U)
|
---|
113 | ; Piece 2 -- MST Status Description
|
---|
114 | ;
|
---|
115 | N ARY,MST
|
---|
116 | S ARY="^TMP(""IB"",$J,""INTERFACES"",DFN)"
|
---|
117 | I '$G(DFN) Q
|
---|
118 | S MST=$$GETSTAT^DGMSTAPI(DFN)
|
---|
119 | I +MST=0!(+MST>0) S @ARY@("DGMST STATUS")=$P(MST,"^",2)_"^"_$S(+MST>0:$P(MST,"^",6),1:"Unknown, not screened")
|
---|
120 | Q
|
---|
121 | ;
|
---|
122 | ;
|
---|
123 | ASKMST ;-- Ask if patient's treatment is related to SC and MST (if applicable)
|
---|
124 | ;
|
---|
125 | N ARY,COUNT
|
---|
126 | Q:'$G(DFN)
|
---|
127 | S ARY="^TMP(""IB"",$J,""INTERFACES"")"
|
---|
128 | S COUNT=1
|
---|
129 | I $$SC^SDCO22(DFN,0) S @ARY@("DGMST SELECT MST CLASSIFICATN",COUNT)="SC^Was treatment for an SC condition?",COUNT=COUNT+1
|
---|
130 | I $$MST^SDCO22(DFN,0) S @ARY@("DGMST SELECT MST CLASSIFICATN",COUNT)="MST^Was treatment related to MST? (Ask provider only)"
|
---|
131 | Q
|
---|