1 | MDRPCOW ; HOIFO/DP/NCA - Billing Widget ;10/3/05 12:17
|
---|
2 | ;;1.0;CLINICAL PROCEDURES;**6**;Apr 01, 2004;Build 102
|
---|
3 | ; Reference IA# 2240 [Supported] ENCRYP^XUSRB1 call
|
---|
4 | ; 2241 [Supported] DECRYP^XUSRB1 call
|
---|
5 | ; 10017 [Supported] ^DD("DD") reference
|
---|
6 | ; 10040 [Supported] Hospital Location File Access
|
---|
7 | ; 10045 [Supported] XUSHSHP call
|
---|
8 | ; 10060 [Supported] FILE 200 references
|
---|
9 | ;
|
---|
10 | RPC(RESULTS,OPTION,P1,P2,P3,P4,P5,P6,P7) ; [Procedure] Main RPC call
|
---|
11 | ; RPC: [MD TMDWIDGET]
|
---|
12 | ;
|
---|
13 | D CLEAN^DILF
|
---|
14 | S RESULTS=$NA(^TMP("MDKUTL",$J)) K @RESULTS
|
---|
15 | I $T(@OPTION)="" D Q
|
---|
16 | .S @RESULTS@(0)="-1^Error in RPC: MD TMDWIDGET at "_OPTION_U_$T(+0)
|
---|
17 | D @OPTION S:'$D(@RESULTS) @RESULTS@(0)="-1^No return"
|
---|
18 | D CLEAN^DILF
|
---|
19 | Q
|
---|
20 | ;
|
---|
21 | SUBMIT ; Submit a final report to close out an entry in 702
|
---|
22 | ;
|
---|
23 | ; P1=702 IEN
|
---|
24 | ; P2=Encoded E-Sig
|
---|
25 | ; P3=Array containing the text for the note
|
---|
26 | ;
|
---|
27 | I '$D(^MDD(702,+P1,0)) S @RESULTS@(0)="-1^No such study" Q
|
---|
28 | I $P(^MDD(702,+P1,0),U,9)=2 S @RESULTS@(0)="-1^Study is in Error status, cannot use study until the error is fixed." Q
|
---|
29 | I "016"[$P(^MDD(702,+P1,0),U,9) S @RESULTS@(0)="-1^Cannot submit - not a Dialysis study." Q
|
---|
30 | I $D(P3)<1 S @RESULTS@(0)="-1^No note text" Q
|
---|
31 | I P2="" D PCE Q
|
---|
32 | K ^TMP("MDTXT",$J)
|
---|
33 | S X="",Y=1
|
---|
34 | F S X=$O(P3(X)) Q:X="" S ^TMP("MDTXT",$J,Y)=P3(X),Y=Y+1
|
---|
35 | ; a "1^Note Filed" if everything is ok otherwise an error msg
|
---|
36 | I P2'="" S P2=$$DECRYP^XUSRB1(P2),P2=$$ENCRYP^XUSRB1(P2)
|
---|
37 | ;S @RESULTS@(0)=$$SUBMIT^MDRPCOT2(+P1,P2,$NA(^TMP("MDTXT",$J)),.P7)
|
---|
38 | S @RESULTS@(0)=$$SUBMIT^MDRPCOT2(+P1,P2,$NA(^TMP("MDTXT",$J)))
|
---|
39 | I +@RESULTS@(0)>0 S @RESULTS@(0)="1^Approval Message"
|
---|
40 | N XX S XX="",XX=$$UPDCONS^MDRPCOT1(+$P($G(^MDD(702,+P1,0)),U,5),+$P($G(^MDD(702,+P1,0)),U,6))
|
---|
41 | ;
|
---|
42 | K ^TMP("MDTXT",$J) Q
|
---|
43 | Q
|
---|
44 | ;
|
---|
45 | ESIG ; [Procedure] Verify users electronic signature
|
---|
46 | I $G(P1)="" D Q
|
---|
47 | .S @RESULTS@(0)="-1^Must supply electronic signature code"
|
---|
48 | S X=$$DECRYP^XUSRB1(P1)
|
---|
49 | D HASH^XUSHSHP
|
---|
50 | I X'=$$GET1^DIQ(200,DUZ_",",20.4,"I") S @RESULTS@(0)="-1^E-Sig Invalid^"
|
---|
51 | E S @RESULTS@(0)="1^E-Sig Verifed^"_X
|
---|
52 | Q
|
---|
53 | ;
|
---|
54 | GETBILL ; Get Billing Data
|
---|
55 | Q
|
---|
56 | N MDFLD
|
---|
57 | ;D BLDFLD^MDXMLFM(.MDFLD,702,".001;;STUDY_ID^.01;;PATIENT_ID")
|
---|
58 | ;D BLDFLD^MDXMLFM(.MDFLD,702,".14;;ICD_01^.15;;ICD_02^.16;;ICD_03^.17;;ICD_04^.18;;CPT_01")
|
---|
59 | ;D BLDFLD^MDXMLFM(.MDFLD,702,".19;;SC_CONDITION^.2;;MST^.21;;AO_EXPOSURE^.22;;IR_EXPOSURE^.23;;EV_CONTAMINENTS^.24;;HEAD_NECK_CANCER^.25;;COMBAT_VETERAN")
|
---|
60 | ;D BLDFLD^MDXMLFM(.MDFLD,702,".26;;PRIMARY_PROVIDER_ID")
|
---|
61 | ;D BLDFLD^MDXMLFM(.MDFLD,702,".26:.01;;PRIMARY_PROVIDER_NAME")
|
---|
62 | ;D BLDFLD^MDXMLFM(.MDFLD,702,".27;;ATTENDING_PROVIDER_ID")
|
---|
63 | ;D BLDFLD^MDXMLFM(.MDFLD,702,".27:.01;;ATTENDING_PROVIDER_NAME")
|
---|
64 | ;D LOADONE^MDXMLFM(P1,702,.MDFLD)
|
---|
65 | Q
|
---|
66 | ;
|
---|
67 | SETBILL ; Set Billing Data
|
---|
68 | N MDFDA,MDERR
|
---|
69 | ;F X=0:1:13 S P2(X)=$G(P2(X)) D
|
---|
70 | ;.D VAL^DIE(702,+P1_",",.14+(X*.01),"F",P2(X),.MDERR,"MDFDA")
|
---|
71 | ;.Q:MDERR'="^" ; Validated
|
---|
72 | ;.S Y="Bad value: "_$$GET1^DID(702,.14+(X*.01),,"LABEL")_" '"_P2(X)_"'"
|
---|
73 | ;.S @RESULTS@($O(@RESULTS@(""),-1)+1)=Y
|
---|
74 | ;I $D(@RESULTS) S @RESULTS@(0)="-1^Errors filing data" Q
|
---|
75 | ;D FILE^DIE("","MDFDA")
|
---|
76 | S @RESULTS@(0)="1^Ok"
|
---|
77 | Q
|
---|
78 | ;
|
---|
79 | PCE ; Set PCE Data
|
---|
80 | ;
|
---|
81 | ; P1=702 IEN
|
---|
82 | ; P2=Encoded E-Sig
|
---|
83 | ; P3=Array containing the text for the note
|
---|
84 | ; P7=Array of Billing information
|
---|
85 | ;
|
---|
86 | N CTR,DFN,MDCON,MDFDA,MDGST,MDL,MDLOC,MDNOTE,MDPDT,MDPROC,MDRESU,MDTITL,MDTSTR,MDVST,MDVSTR,MDWP S CTR=0,MDGST=+P1,MDRESU=""
|
---|
87 | I '$D(^MDD(702,+P1,0)) S @RESULTS@(0)="-1^No such study" Q
|
---|
88 | ;
|
---|
89 | ; Get data to set PCE data
|
---|
90 | S (MDTSTR,MDRESU)=$$GETDATA^MDRPCOT2(MDGST)
|
---|
91 | ; File Error message
|
---|
92 | I +MDRESU<0 S @RESULTS@(0)=MDRESU Q
|
---|
93 | I $G(MDTSTR)="" S @RESULTS@(0)="-1^No Data in study to set PCE data." Q
|
---|
94 | F MDL="DFN","MDTITL","MDLOC","MDNOTE","MDCON","MDPROC","MDVSTR","MDNVST" D
|
---|
95 | .S CTR=CTR+1,@MDL=$P(MDTSTR,"^",CTR)
|
---|
96 | S (MDVST,MDRESU)=""
|
---|
97 | I 'MDLOC S @RESULTS@(0)="-1^No Hospital Location." Q
|
---|
98 | ; Create new visit, if no vstring
|
---|
99 | S MDPDT=$$PDT^MDRPCOT1(MDGST)
|
---|
100 | S:'MDPDT MDPDT=$P(MDVSTR,";",2) ; If No D/T Performed grab visit D/T
|
---|
101 | ; File PCE Error message
|
---|
102 | I MDNVST S MDRESU=$$EN1^MDPCE2(.P7,MDGST,$P(MDVSTR,";",2),MDPROC,$P(MDVSTR,";",3),"P",MDLOC) I +MDRESU S MDVST=+MDRESU
|
---|
103 | I 'MDNVST S MDVST=$P($G(^MDD(702,+MDGST,1)),U) S MDRESU=$$EN1^MDPCE2(.P7,MDGST,$P(MDVSTR,";",2),MDPROC,$P(MDVSTR,";",3),"P",MDLOC) I +MDRESU S MDVST=+MDRESU
|
---|
104 | I +MDRESU<0 S @RESULTS@(0)=MDRESU Q
|
---|
105 | ;
|
---|
106 | S @RESULTS@(0)="Approval Message"
|
---|
107 | Q
|
---|
108 | GETLOC ; Get the existing hospital location
|
---|
109 | N MDCL,MDPR,MDVV
|
---|
110 | S MDPR=$P($G(^MDD(702,+P1,0)),U,4)
|
---|
111 | S MDVV=$P($G(^MDD(702,+P1,0)),U,7)
|
---|
112 | ;S MDCL=$$GET1^DIQ(702.01,+MDPR_",",.05,"I")
|
---|
113 | S MDCL=$P(MDVV,";",3)
|
---|
114 | I 'MDCL S MDCL=$$GET1^DIQ(702.01,+MDPR_",",.05,"I")
|
---|
115 | I 'MDCL S @RESULTS@(0)="-1^No Hospital Location." Q
|
---|
116 | S Y=$P(MDVV,";",2) I Y'="" X ^DD("DD")
|
---|
117 | S @RESULTS@(0)=MDCL_U_$$GET1^DIQ(44,MDCL_",",.01,"I")_U_Y
|
---|
118 | Q
|
---|
119 | SETLOC ; Set a new clinic location from GUI if non is found.
|
---|
120 | N MDVV
|
---|
121 | S MDVV=$P($G(^MDD(702,+P1,0)),U,7)
|
---|
122 | I P2="" S @RESULTS@(0)="-1^No Location Selected."
|
---|
123 | I $L(MDVV,";")=1 S MDVV=";"_MDVV
|
---|
124 | S $P(MDVV,";",3)=P2
|
---|
125 | S $P(^MDD(702,P1,0),U,7)=MDVV
|
---|
126 | S @RESULTS@(0)="1^Okay Location Updated."
|
---|
127 | Q
|
---|
128 | CHECK ; return TRUE if PCE data filled
|
---|
129 | N MDIL,MDOKAY,MDCK,MDECTR
|
---|
130 | S (MDECTR,MDIL)=0,MDCK="",MDOKAY("POV")="",MDOKAY("CPT")="",MDOKAY("PRV")=""
|
---|
131 | F S MDIL=$O(@P2@(MDIL)) Q:MDIL="" S MDCK=$G(@P2@(MDIL)) D
|
---|
132 | . I $P(MDCK,U,1)="POV" S:$G(MDOKAY("POV"))="" MDOKAY("POV")=1
|
---|
133 | . I $P(MDCK,U,1)="CPT" S:$G(MDOKAY("CPT"))="" MDOKAY("CPT")=1
|
---|
134 | . I $P(MDCK,U,1)="PRV" S:$G(MDOKAY("PRV"))="" MDOKAY("PRV")=1
|
---|
135 | F MDIL="POV","PRV","CPT" S MDECTR=MDECTR+$G(MDOKAY(MDIL))
|
---|
136 | I MDECTR<3 S @RESULTS@(0)="-1^Missing PCE data--Review Data Again." Q
|
---|
137 | S @RESULTS@(0)=1
|
---|
138 | Q
|
---|
139 | NAME ; Get the person name
|
---|
140 | S @RESULTS@(0)="1^"_$$GET1^DIQ(200,+P2_",",.01,"E")
|
---|
141 | Q
|
---|
142 | STAT ; Get the okay status of the CP study
|
---|
143 | N MDST,MDGN S MDGN=""
|
---|
144 | S MDST=$$GET1^DIQ(702,+P1,.09,"E") S MDGN=MDST
|
---|
145 | I $$GET1^DIQ(702,+P1,.09,"I")=2 S MDGN=MDGN_"^"_$$GET1^DIQ(702,+P1,.08,"E")
|
---|
146 | S @RESULTS@(0)=MDGN
|
---|
147 | Q
|
---|
148 | STATUS ; [Procedure] Update transaction status
|
---|
149 | N MDFDA
|
---|
150 | S MDFDA(702,+P1_",",.09)=P2
|
---|
151 | D FILE^DIE("","MDFDA")
|
---|
152 | S @RESULTS@(0)="1^Done"
|
---|
153 | Q
|
---|