source: VWGUIRegistration/trunk/VWREGITU.m@ 1800

Last change on this file since 1800 was 1798, checked in by Jim B., 8 years ago
File size: 6.2 KB
RevLine 
[1798]1VWREGITU ;Portland, OR/jeb et al World Vista Registration Utilities
2 ;V.2;;**LOCAL**;; 2015;Build 2
3 ;;c2014, BellFelder Productions(BF Productions)
4 ;No Fall thru - jeb
5 Q
6 ;
7DFNID() ;Set NAME(IEN),TAB,DOB(AGE),TAB,HRN,TAB,PHONE#
8 N DFNID,NAME,X,Y,DOB,HRN,PHONE
9 I 'DFN Q ""
10 S NAME=$P(^DPT(DFN,0),"^")
11 S Y=$$OUTPUT^VWTIME(DFN) X ^DD("DD") S DOB=Y
12 S HRN=$G(^DPT(DFN,540001.1))
13 S PHONE="Phone: "_$P(^DPT(DFN,.13),"^")
14 S DFNID=NAME_$C(9)_DOB_$C(9)_$S($L(HRN):"HRN: "_HRN_$C(9),1:"")_PHONE
15 Q DFNID
16 ;
17HELP(XDIC,XFIELD) ;
18 N N
19 K FHELP
20 S FHELP=$G(^DD(XDIC,XFIELD,3))
21 G:'$L(FHELP) HELPX
22 S FHELP=FHELP_$S($E($L(FHELP))=".":" ",1:". ")
23 I XFIELD'=27.02,$D(^DD(XDIC,XFIELD,21)) S N=0 F S N=$O(^DD(XDIC,XFIELD,21,N)) Q:'+N S FHELP=FHELP_^(N,0)_" "
24 S FHELP=$TR(FHELP,"'","`")
25HELPX Q FHELP
26 ;
27M(RESULT,XMF) ;
28 ; **********************************************
29 ; * XMF_____PARENT FIELD^DFN^TEMPLATE NAME(IEN)*
30 ; **********************************************
31 ;
32 ;W " ;Intentional break
33 K RESULT,AR,TEMPLATE
34 N XMFD,SUBD,SUBD3,SUBD4,SUBD5,F2,F3,F4,F5,DFN,N,X,SUBF,XT,FHELP
35 S TNUM=+$P(XMF,"(",2) ;Template IEN, if any
36 S DFN=+$P(XMF,"^",2) ;Client IEN, if any
37 S XMF=+XMF ;Parent field
38 I '+$P(^DD(2,XMF,0),"^",2) S RESULT(0)=-1 ;Not a parent, eh?!
39 S XMFD=+$P(^(0),"^",2)
40 S F=0 F S F=$O(^DD(XMFD,F)) Q:'+F S RESULT($$INR)=$P(^(F,0),"^")_"^"_XMFD_";"_F_"^^"_$$HELP(XMFD,F)_"^"_$P(^(0),"^",3) D:+$P(^(0),"^",2)
41 . S SUBD=+$P(^(0),"^",2)
42 . S F2=0 F S F2=$O(^DD(SUBD,F2)) Q:'+F2 S RESULT($$INR)=$P(^(F2,0),"^")_"^"_SUBD_";"_F2_"^^"_$$HELP(SUBD,F2)_"^"_$P(^(0),"^",3) D:+$P(^DD(SUBD,F2,0),"^",2)
43 .. S SUBD3=+$P(^(0),"^",2)
44 .. S F3=0 F S F3=$O(^DD(SUBD3,F3)) Q:'+F3 S RESULT($$INR)=$P(^(F3,0),"^")_"^"_SUBD3_";"_F3_"^^"_$$HELP(SUBD3,F3)_"^"_$P(^(0),"^",3) D:+$P(^DD(SUBD3,F3,0),"^",2)
45 ... S SUBD4=+$P(^DD(SUBD3,F3,0),"^",2)
46 ... S F4=0 F S F4=$O(^DD(SUBD4,F4)) Q:'+F4 S RESULT($$INR)=$P(^(F4,0),"^")_"^"_SUBD4_";"_F4_"^^"_$$HELP(SUBD4,F4)_"^"_$P(^(0),"^",3) D:+$P(^DD(SUBD4,F2,0),"^",2)
47 .... S SUBD5=+$P(^(0),"^",2)
48 .... S F5=0 F S F5=$O(^DD(SUBD5,F5)) Q:'+F5 S RESULT($$INR)=$P(^(F5,0),"^")_"^"_SUBD5_";"_F5_"^^"_$$HELP(SUBD5,F5)_"^"_$P(^(0),"^",3)
49 ;Clean up of parents IN multiple fields
50 M AR=RESULT K RESULT N DD,F
51 S N=0 F S N=$O(AR(N)) Q:'+N D
52 . S DD=+$P($P(AR(N),"^",2),";") ;Is this a sub DD ?
53 . S F=+$P(AR(N),";",2)
54 . I +$P(^DD(DD,F,0),"^",2) K AR(N)
55 ;Clean up fields not in template
56 M TEMPLATE=^DIE(TNUM,"DR")
57 S X=$Q(@"TEMPLATE") K @X ;Remove top, non-multiple subscript
58 S X="AR" F S X=$Q(@X) Q:X="" D
59 . S SUBD=+$P($P(@X,"^",2),";")
60 . S SUBF=+$P(@X,";",2)
61 . F I=1:1:20 I $D(TEMPLATE(I,SUBD)) D
62 .. Q:TEMPLATE(I,SUBD)[SUBF
63 .. K @X
64 S N=0 F S N=$O(AR(N)) Q:'+N S RESULT($$INR)=AR(N)
65 K AR,TEMPLATE
66 Q
67 ;
68DISV(RESULT,DFN) ;Set the Disv GLOBAL
69 K RESULT
70 I '$L(DFN) S RESULT=-1 Q
71 S ^DISV(DUZ,"^DPT(")=+$P(DFN,"(",2),RESULT=1
72 Q
73 ;
74SR(FNAME,FNUM,FVALUE,FHELP,FSETPNTR,FMISC) ;Set values into RESULT()
75 ;********************************************************
76 ;* FNAME________Field Name *
77 ;* FNUM_________Field Number *
78 ;* FVALUE_______Data from existing client/patient *
79 ;* FHELP________Help text from field *
80 ;* FSETPNTR_____Set of codes or Pointer reference *
81 ;* FMISC________Locally described designator (not used) *
82 ;********************************************************
83 S RESULT($$INR)=FNAME_"^"_FNUM_"^"_FVALUE_"^"_FHELP_"^"_FSETPNTR_"^"_FMISC
84 Q
85 ;
86INR() ;Specific incrementer for RESULT array
87 Q $O(RESULT(" "),-1)+1
88 ;
89ZPC(RESULT,ZIP) ;Get zip,county/area/region,state/province,preferred city
90 K RESULT N STP,CNTP,COUNTY,XZIP
91 S XZIP=ZIP S RESULT(0)="No return" Q:'$L(XZIP)
92 D POSTAL^XIPUTIL(XZIP,.ZIPDATA)
93 I $D(ZIPDATA("ERROR")) Q ;Can't be found
94 S COUNTY=$G(ZIPDATA("COUNTY"))
95 S STP=$G(ZIPDATA("STATE POINTER"))
96 I STP,$L(COUNTY) S CNTP=$O(^DIC(5,STP,1,"B",COUNTY,0))
97 K RESULT(0)
98 S RESULT($$INR)=ZIPDATA("STATE")_"("_STP_")"
99 S RESULT($$INR)=ZIPDATA("COUNTY")_"("_CNTP_")"
100 S RESULT($$INR)=ZIPDATA("CITY")
101 S RESULT($$INR)=ZIPDATA("FIPS CODE")
102 K ZIPDATA
103 Q
104 ;
105SPI(RESULT,DFN) ;Simple patient inquiry display
106 S LINE="----------"
107 S DIC="^DPT(",DA=DFN,DIQ(0)="E",DIQ="AR"
108 S DR=".01:.05;.111:.115;.1171:.1173;.117;.363"
109 D EN^DIQ1
110 S CITY=$G(AR(2,DFN,.114,"E"))
111 S STIEN="",STATE=$G(AR(2,DFN,.115,"E")) S:$L(STATE) STIEN=$O(^DIC(5,"B",STATE,0))
112 S XAGE=$G(AR(2,DFN,.033,"E"))
113 S XAGE=$S(+XAGE:XAGE_" y/o",1:"")
114 ;;GET HRN
115HRN S HRN="",N=$O(^AUPNPAT(DFN,41,0))
116 S HRN=$S('N:HRN,1:$P($G(^AUPNPAT(DFN,41,N,0)),"^",2))
117 S RESULT($$INR)=AR(2,DFN,.01,"E")_" "_AR(2,DFN,.363,"E")_" HRN: "_HRN
118 S RESULT($$INR)="DOB: "_AR(2,DFN,.03,"E")_" ("_XAGE_" "_AR(2,DFN,.02,"E")_")"
119 S RESULT($$INR)="ADDRESS"_LINE_LINE
120 S RESULT($$INR)=$G(AR(2,DFN,.111,"E"))_" "_$G(AR(2,DFN,.112,"E"))
121 S RESULT($$INR)=$G(AR(2,DFN,.114,"E"))_", "_$G(AR(2,DFN,.115,"E"))_" "_$S($L($G(AR(2,DFN,.1172,"E"))):AR(2,DFN,.1172,"E"),1:$G(AR(2,DFN,.1112,"E")))
122 S RESULT($$INR)="Walk-ins"_LINE_LINE
123 S RESULT($$INR)="Appointments"_LINE_LINE
124 S RESULT($$INR)="Admissions"_LINE_LINE
125 Q
126 ;
127CONTROL() ;Check for CONTROL status
128 N X S X=$O(^DIC(19,"B","VW REG IT CONTROL",0))
129 I 'X Q 0 ;Ain't no option there
130 Q $S($D(^VA(200,DUZ,203,"B",X)):1,1:0)
131 ;
132MISC(RESULT,VWDD) ;Get simple value from VWDD ID
133 ;***************************************************
134 ;* VWDD___________________(sub)-Dictionary number *
135 ;* Multiple delimiter_____;(Semicolon) *
136 ;***************************************************
137 ;
138 I '$L(VWDD) S RESULT(0)="No value to evaluate" Q
139 K RESULT
140 N XDD,XDDLOC,N,X
141 G MISCSD:$G(^DD(VWDD,0,"UP"))
142 S CALLER=$S($P(VWDD,"^",2)="INS":1,1:0)
143 S VWDD=$P(VWDD,"^")
144 F I=1:1:$L(VWDD,";") S XDD=+$P(VWDD,";",I) S RESULT($$INR)="["_$P(^DIC(XDD,0),"^")_"]" D MISC1
145 I CALLER S RESULT($$INR)="[GUARANTOR]" D
146 . S X=$P(^DD(2.312,16,0),"^",3)
147 . F I=1:1:$L(X,";") S Y=$P(X,";",I),RESULT($$INR)=$P(Y,":",2)_"("_$P(Y,":")_")"
148 Q
149 ;
150MISC1 S XDDLOC=$G(^DIC(XDD,0,"GL")) D:$L(XDDLOC)
151 . S N=0 F S N=$O(@(XDDLOC_N_")")) Q:'+N D
152 .. I XDDLOC["779.004" S XCNAME=$P(@(XDDLOC_N_",0)"),"^")_" "_$P(^(0),"^",2)_" "_+$G(^("SDS"))_"("_N_")",RESULT($$INR)=XCNAME Q
153 .. S X=$P(@(XDDLOC_N_",0)"),"^")_"("_N_")",RESULT($$INR)=X
154MX Q
155 ;
156MISCSD ;Sub-dictionary
157 W ^("UP")
158 Q
159 ;
160
Note: See TracBrowser for help on using the repository browser.