1 | IVMLINS2 ;ALB/KCL - IVM INSURANCE POLICY PURGE ; 3/23/01 4:36pm
|
---|
2 | ;;2.0;INCOME VERIFICATION MATCH;**14,34,111**; 21-OCT-94
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | ;
|
---|
6 | ASK ; - ask user to 'T'ransfer or 'P'urge IVM insurance policy
|
---|
7 | S DIR(0)="S^1:Transfer IVM Insurance Policy to insurance module;2:Purge IVM Insurance Policy;3:Return to Display Screen"
|
---|
8 | S DIR("A")="Select Action",DIR("?")="^D HLP1^IVMLINS2"
|
---|
9 | D ^DIR K DIR S IVMACT=Y G:$D(DIRUT)!($D(DUOUT))!(IVMACT=3) IVMQ^IVMLINS3
|
---|
10 | I IVMACT[1 D TRANSFER^IVMLINS3(0) Q
|
---|
11 | ;
|
---|
12 | ;
|
---|
13 | PURGE ; - purge IVM insurance information - ask for reason why
|
---|
14 | ;
|
---|
15 | W !!,"The 'Purge IVM Insurance Policy' action has been selected."
|
---|
16 | ;
|
---|
17 | W !!,"This action will cause the insurance information which has been"
|
---|
18 | W !,"received from HEC to be deleted from the system!",!,*7
|
---|
19 | ;
|
---|
20 | W !,"Please select a reason for purging the IVM insurance information."
|
---|
21 | S DIC="^IVM(301.91,",DIC("A")="Select reason for purging: ",DIC(0)="QEAMZ"
|
---|
22 | D ^DIC K DIC G:Y<0!($D(DTOUT))!($D(DUOUT)) ASK
|
---|
23 | S IVMREPTR=+Y
|
---|
24 | ;
|
---|
25 | ; - ask user 'are you sure you want to purge'
|
---|
26 | W ! S DIR(0)="Y",DIR("A")="Are you sure that you want to purge IVM insurance policy"
|
---|
27 | ;
|
---|
28 | ; - set default = 'NO'
|
---|
29 | S DIR("B")="NO"
|
---|
30 | ;
|
---|
31 | ; - user help
|
---|
32 | S DIR("?")="Answer 'Y'ES to go ahead with this action or 'N'O to abort"
|
---|
33 | D ^DIR K DIR G:'Y ASK
|
---|
34 | ;
|
---|
35 | ; - update the INSURANCE SEGMENT multiple stored in (#301.5) file
|
---|
36 | W !!,"Purging the 'Insurance Policy' received from IVM... "
|
---|
37 | N DA,DR,DIE,IVMINSST
|
---|
38 | ;
|
---|
39 | ; stuff UPLOAD INSURANCE DATA(.04) and REASON NOT UPLOADING INSURANCE
|
---|
40 | ; (.08)
|
---|
41 | S DA=IVMJ,DA(1)=IVMI
|
---|
42 | S DIE="^IVM(301.5,"_DA(1)_",""IN"","
|
---|
43 | S DR=".04////0;.08////^S X=IVMREPTR" D ^DIE
|
---|
44 | ;
|
---|
45 | S IVMINSST=0
|
---|
46 | D HL7 ;send HL7 message to HEC
|
---|
47 | ;
|
---|
48 | DELETE ; - delete segment name (.02 field of 301.501 multiple) from IVM PATIENT
|
---|
49 | ; file to remove from ASEG cross-reference
|
---|
50 | ;
|
---|
51 | S DA=IVMJ,DA(1)=IVMI
|
---|
52 | S DIE="^IVM(301.5,"_DA(1)_",""IN"",",DR=".02////@" D ^DIE
|
---|
53 | ;
|
---|
54 | ; - delete incoming segments strings
|
---|
55 | K ^IVM(301.5,DA(1),"IN",DA,"ST"),^("ST1")
|
---|
56 | W "completed.",!
|
---|
57 | ;
|
---|
58 | S DIR(0)="E",DIR("A")="Press RETURN to continue" D ^DIR K DIR
|
---|
59 | ;
|
---|
60 | ; - delete entry from the List Manager display once purged
|
---|
61 | K ^TMP("IVMIUPL",$J,IVMNAME,IVMI,IVMJ)
|
---|
62 | ;
|
---|
63 | ; - action completed
|
---|
64 | S IVMDONE=1
|
---|
65 | D IVMQ^IVMLINS3
|
---|
66 | Q
|
---|
67 | ;
|
---|
68 | HL7 ; - send HL7 message to HEC
|
---|
69 | ;
|
---|
70 | N IVMIN1,IVMIN2,IVMZIV
|
---|
71 | N HLEID,HL,HLRESLT
|
---|
72 | ;
|
---|
73 | ; MESSAGE PROTOCOL
|
---|
74 | S HLEID="VAMC "_$P($$SITE^VASITE,"^",3)_" ORU-Z04 SERVER V"
|
---|
75 | S HLEID=$O(^ORD(101,"B",HLEID,0))
|
---|
76 | ;
|
---|
77 | ; - initialize variables for HL7/IVM
|
---|
78 | D INIT^IVMUFNC(HLEID,.HL) S HLMTN="ORU"
|
---|
79 | ;
|
---|
80 | ;
|
---|
81 | ; - create PID,IN1,ZIV segments
|
---|
82 | ;
|
---|
83 | ; - PID segment
|
---|
84 | K IVMPID,VAFPID
|
---|
85 | S IVMPID=$$EN^VAFHLPID(DFN,"1,3,5,7,19")
|
---|
86 | I $P(IVMPID,HLFS,20)["P" D PSEUDO^IVMPTRN1
|
---|
87 | S IVMCT=IVMCT+1,^TMP("HLS",$J,IVMCT)=IVMPID
|
---|
88 | K IVMPID,VAFPID
|
---|
89 | ;
|
---|
90 | ; - IN1 segment
|
---|
91 | S IVMIN1="IN1^1"
|
---|
92 | S IVMIN2=$G(^IVM(301.5,IVMI,"IN",IVMJ,"ST"))_$G(^("ST1"))
|
---|
93 | S $P(IVMIN1,"^",5)=$P(IVMIN2,"^",4)
|
---|
94 | S $P(IVMIN1,"^",37)=$P(IVMIN2,"^",36)
|
---|
95 | S IVMCT=IVMCT+1,^TMP("HLS",$J,IVMCT)=IVMIN1
|
---|
96 | ;
|
---|
97 | ; - ZIV segment
|
---|
98 | S IVMZIV="ZIV^1"
|
---|
99 | ; - get ivm ien, strip off date of death
|
---|
100 | S $P(IVMZIV,"^",10)=$P($P($G(^IVM(301.5,IVMI,"IN",IVMJ,0)),"^",7),"/")
|
---|
101 | S $P(IVMZIV,"^",11)=IVMINSST
|
---|
102 | S:IVMINSST=0 $P(IVMZIV,"^",12)=IVMREPTR
|
---|
103 | S IVMCT=IVMCT+1,^TMP("HLS",$J,IVMCT)=IVMZIV
|
---|
104 | ;
|
---|
105 | D GENERATE^HLMA(HLEID,"GM",1,.HLRESLT) ; - create mail message
|
---|
106 | K ^TMP("HLS",$J)
|
---|
107 | D CLEAN^IVMUFNC
|
---|
108 | Q
|
---|
109 | ;
|
---|
110 | DOD ; - Alert user if date of death reported in DHCP or from HEC
|
---|
111 | ;
|
---|
112 | W !!,*7,"'Date of Death' reported for this patient "
|
---|
113 | W $S($P($G(^DPT(+DFN,.35)),"^")]"":"in DHCP as "_$$DAT2^IVMUFNC4($P($G(^DPT(+DFN,.35)),"^")),$P(IVMDND,"^",6)]"":"by HEC as "_$$DAT2^IVMUFNC4($P(IVMDND,"^",6)))_".",!
|
---|
114 | S DIR(0)="E",DIR("A")="Press RETURN to continue" D ^DIR K DIR
|
---|
115 | Q
|
---|
116 | ;
|
---|
117 | ;
|
---|
118 | HLP1 ; - help for ASK Transfer or Purge
|
---|
119 | ;
|
---|
120 | ; - if user enters single '?'
|
---|
121 | I X="?" D
|
---|
122 | .W !!,"Enter one of the following responses:"
|
---|
123 | .W !," 1 - to transfer the Insurance Policy that was received from HEC to the insurance module"
|
---|
124 | .W !," 2 - to delete the Insurance Policy that was received from HEC"
|
---|
125 | .W !," 3 - to return to the previous display screen"
|
---|
126 | .W !," '^' - to return to the previous display screen"
|
---|
127 | ;
|
---|
128 | ; - if user enters double '??'
|
---|
129 | I X="??" D
|
---|
130 | .W !!,"Entering '1' at this prompt will allow the user to transfer the Insurance Policy"
|
---|
131 | .W !,"that was received from HEC to the insurance module. Entering '2' at this prompt"
|
---|
132 | .W !,"will allow the user to delete the Insurance Policy that was received from HEC."
|
---|
133 | .W !,"Entering '3' or '^' will abort this action."
|
---|
134 | Q
|
---|