| [613] | 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)
 | 
|---|