1 | ACKQASU ;HCIOFO/BH-New/Edit Visit Utilities ; 04/01/99
|
---|
2 | ;;3.0;QUASAR;**8,15**;Feb 11, 2000;Build 2
|
---|
3 | ;Per VHA Directive 10-93-142, this routine SHOULD NOT be modified.
|
---|
4 | ;
|
---|
5 | ELIGCHK() ; Checks to see if there is a Primary Eligibility (which there
|
---|
6 | ; always should be) if there's not (i.e. data error) pass back zero.
|
---|
7 | ;
|
---|
8 | N ACKFLG
|
---|
9 | D ELIG^VADPT S:VAEL(1)="" ACKFLG="0" S:VAEL(1)'="" ACKFLG=1
|
---|
10 | K VAEL
|
---|
11 | Q ACKFLG
|
---|
12 | ;
|
---|
13 | DISP ; Displays headings and Patient Appointments
|
---|
14 | ;
|
---|
15 | ; CLEAR SCREEN WRITE FROM TOP
|
---|
16 | D ENS^%ZISS
|
---|
17 | W @IOF
|
---|
18 | ; Get date for display
|
---|
19 | D NOW^%DTC S Y=% D DD^%DT S ACKDDT1=$TR(Y,"@"," "),ACKDDT2=X
|
---|
20 | S ACKSSN=$$GET1^DIQ(2,ACKPAT,".09")
|
---|
21 | W " - ",IOUON,"APPOINTMENT LIST",IOUOFF," -",!
|
---|
22 | W !," Name : "_$$GET1^DIQ(2,ACKPAT,".01")
|
---|
23 | W ?38,"SSN : ",$E(ACKSSN,1,3)_"-"_$E(ACKSSN,4,5)_"-"_$E(ACKSSN,6,9)
|
---|
24 | W !," Date : "_$E(ACKDDT2,4,5)_"/"_$E(ACKDDT2,6,7)_"/"_$E(ACKDDT2,2,3)
|
---|
25 | W ?38,"Clinic : "_$$GET1^DIQ(44,ACKCLIN,.01)
|
---|
26 | W !,IOUON," ",IOUOFF
|
---|
27 | ;
|
---|
28 | ;
|
---|
29 | W !!," ",IOUON,"Appt Date/Time",IOUOFF," ",IOUON,"Status",IOUOFF," ",IOUON,"Appointment Type",IOUOFF
|
---|
30 | K ACKDDT1,ACKDDT2,ACKSSN
|
---|
31 | ;
|
---|
32 | S ACKK3=""
|
---|
33 | F S ACKK3=$O(^UTILITY("VASD",$J,ACKK3)) Q:ACKK3="" D
|
---|
34 | . S ACKSTRIN=^UTILITY("VASD",$J,ACKK3,"E")
|
---|
35 | . W !!," "_ACKK3_"."
|
---|
36 | . W ?4,$P($P(ACKSTRIN,U,1),"@",1)_" "_$P($P(ACKSTRIN,U,1),"@",2)
|
---|
37 | . W ?23,$S($P(ACKSTRIN,U,3)'="":$P(ACKSTRIN,U,3),1:"NO ACTION TAKEN")
|
---|
38 | . W ?49,$P(ACKSTRIN,U,4)
|
---|
39 | W !!!
|
---|
40 | Q
|
---|
41 | ;
|
---|
42 | KILL ; Kill off values at end of processing
|
---|
43 | K ACK0,ACK2,ACKCAT,ACKCD,ACKCDN,ACKCLN,ACKCNT,ACKCP,ACKDA,ACKDC,ACKDUP
|
---|
44 | K ACKDUPN,ACKECSC,ACKESITE,ACKFLD,ACKFLG1,ACKFLG2,ACKGEN,ACKI,ACKLAYGO
|
---|
45 | K ACKMOD,ACKMON,ACKQCPS,ACKQCPT,ACKQRAW,ACKRAW,ACKREQ,ACKSEL,ACKSTF
|
---|
46 | K ACKSIG,ACKTM,ACKVD,ACKY,ACKDEF,ACKDIVN,ACKCSC,ACKCPNO,ACKCLNO,ACKCLIN
|
---|
47 | K ACKL1,ACKL2,ACKL3,ACKL4,ACKR1,ACKR2,ACKR3,ACKR4,ACKTITL,%,%DT,%I,%X
|
---|
48 | K %Y,C,D0,DA,DFN,DIC,DIE,DIK,DIRUT,DLAYGO,DR,DTOUT,DUOUT,I,J,VA,VADM
|
---|
49 | K VAERR,X,X1,X4,Y,ACKELIG,ACKIEN,ACKK2,ACKLAMD,ACKLOSS,ACKN,ACKPCE
|
---|
50 | K ACKVISIT,ACKPAT,ACKVIEN,ACKDIV,ACLCLIN,ACKCHK,ACKVIEN,ACKAO,ACKSC
|
---|
51 | K CLINVAR,DIVARR,ACKRAD,ACKENV,ACKPROV,ACKDIAGD,ACKCPTDS,ACKDIRUT
|
---|
52 | K ACKPCENO,VSAD,DIVARR,DIV,CLINVARR,ACKTME,ACKSCR,ACKELGCT,ACKELG1
|
---|
53 | K ACKTRGT,ACKDVN,ACKACKBA,ACKAUDIO,ACKATS,ACKQUIT,ACKMSG,ACKQTST
|
---|
54 | K ACKQSER,ACKQORG,ACKQIR,ACKQECON,ACKAPMNT,ICPTVDT,ICDVDT
|
---|
55 | Q
|
---|
56 | ;
|
---|
57 | ;
|
---|
58 | DC ; CHECK OUT DIAGNOSTIC CONDITION - ENTER IF NEEDED
|
---|
59 | N ACKY
|
---|
60 | Q:$D(^ACK(509850.2,DFN,1,"B",ACKDC))
|
---|
61 | S ACKY=Y D DEM^VADPT S Y=ACKY,X=$$GET1^DIQ(80,ACKDC,.01),ACKLN=$P(VADM(1),","),ACKSX=$P(VADM(5),U)
|
---|
62 | I $G(ACKBGRD)'="1" D
|
---|
63 | . W !!,X," ",$$DIAGTXT^ACKQUTL8(ACKDC,ACKVD)
|
---|
64 | . W !,"We have no previous record of diagnostic condition ",X," for ",$S(ACKSX="F":"Ms.",1:"Mr.")," ",ACKLN,"." D ADCODE
|
---|
65 | . W !,"Ok, I've added this code to ",$S(ACKSX="F":"her",1:"his")," permanent record !",!
|
---|
66 | I $G(ACKBGRD)=1 D ADCODE
|
---|
67 | K ACK0,ACKLN,ACKSX,VA,VADM,VAERR,X Q
|
---|
68 | ;
|
---|
69 | ADCODE ; Adds ICD to permanent record.
|
---|
70 | N D,D0,D1,DA,DB,DC,DD,DDTM,DE,DF,DG,DH,DI,DIC,DIE,DIEL,DIFLD,DIOV,DIP,DJ,DK,DL,DM,DN,DO,DP,DQ,DR,DU,DV,DW,DXS,DZ,I,Y ;we're calling this from FM
|
---|
71 | L +^ACK(509850.2,DFN,1,0) S (DIC,DIE)="^ACK(509850.2,"_DFN_",1,",DIC(0)="L",DLAYGO=509850.2,ACKLAYGO=""
|
---|
72 | S DIC("P")=$P(^DD(509850.2,2,0),"^",2),DA(1)=DFN,X=ACKDC D FILE^DICN Q:Y<0 S DA=+Y,DR="2;1///"_ACKVD D ^DIE
|
---|
73 | L -^ACK(509850.2,DFN,1,0) Q
|
---|
74 | ;
|
---|
75 | Q
|
---|
76 | ;
|
---|
77 | GETPCETM(ACKPCENO) ; get appointment time from a PCE Visit ien
|
---|
78 | ; inputs:- ACKPCENO - PCE Visit ien (from ^AUPNVSIT)
|
---|
79 | ; returned :- 0^ - error (visit not found)
|
---|
80 | ; '.nnnnnn^' - time portion of PCE visit date/time
|
---|
81 | N ACKDATE,ACKTM
|
---|
82 | K ^TMP("PXKENC",$J)
|
---|
83 | D ENCEVENT^PXAPI(ACKPCENO)
|
---|
84 | S ACKDATE=$P($G(^TMP("PXKENC",$J,ACKPCENO,"VST",ACKPCENO,0)),U,1)
|
---|
85 | S ACKTM=$S(ACKDATE="":0,1:ACKDATE#1)
|
---|
86 | K ^TMP("PXKENC",$J)
|
---|
87 | Q ACKTM_U
|
---|
88 | ;
|
---|
89 | DUPEDATA(ACKPAT,ACKCLIN,ACKVD,ACKTM) ; If an appointment or PCE visit has been selected for a visit
|
---|
90 | ; which is at the same time, for the same patient, on the same day
|
---|
91 | ; within the same clinic this processing is run.
|
---|
92 | ; inputs:- ACKPAT - patient ien
|
---|
93 | ; ACKCLIN - clinic ien
|
---|
94 | ; ACKVD - visit date (internal)
|
---|
95 | ; ACKTM - appointment time (.NNN - internal)
|
---|
96 | W !!?4,"ERROR - A visit already exists in QUASAR with the following details..",!
|
---|
97 | W !?7,"Visit Date: ",$$DATE(ACKVD)," Appointment Time: ",$$TIME(ACKTM)
|
---|
98 | W !?7," Clinic: ",$$GET1^DIQ(44,ACKCLIN_",",.01,"E")
|
---|
99 | W !?7," Patient: ",$$GET1^DIQ(509850.2,ACKPAT_",",.01,"E")
|
---|
100 | W !!?4,"If you choose to continue you must enter a different Appointment Time."
|
---|
101 | ;
|
---|
102 | ; W !!,"There is already an entry within Quasar for this Patient, within the same"
|
---|
103 | ; W !,"Clinic, on the same date at the same time."
|
---|
104 | ; W !!,"Enter '^' to terminate and quit back to the Division prompt"
|
---|
105 | ; W !,"or <RETURN> to continue."
|
---|
106 | W !
|
---|
107 | K DIR S DIR(0)="E" D ^DIR K DIR ; Return to Continue '^' to Exit
|
---|
108 | I X="^" Q 0
|
---|
109 | Q 1
|
---|
110 | ;
|
---|
111 | DATE(ACKDATE) ; convert ACKDATE to external format
|
---|
112 | S Y=ACKDATE D DD^%DT
|
---|
113 | Q Y
|
---|
114 | TIME(ACKTIME) ; convert Time to external format
|
---|
115 | Q $$FMT^ACKQUTL6(ACKTIME,1)
|
---|