| [613] | 1 | SDAPICO1 ;ALB/MJK - API - Common Check-Out Processing;04 MAR 1993 10:00 am
 | 
|---|
 | 2 |  ;;5.3;Scheduling;**27**;08/13/93
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 | CLASS(SDOE) ; -- file classification data
 | 
|---|
 | 5 |  IF '$D(@SDROOT@("CLASSIFICATION")) G CLASSQ
 | 
|---|
 | 6 |  N SDCLOEY,I,SDCTIS,SDCTS,SDVAL,SDCTVAL,SDCT,SDCT0,SDCTI,SDCTAB,SDACT
 | 
|---|
 | 7 |  ;  -- find class required for this encounter
 | 
|---|
 | 8 |  D CLASK^SDCO2(SDOE,.SDCLOEY)
 | 
|---|
 | 9 |  ;
 | 
|---|
 | 10 |  ; -- get class abbreviations
 | 
|---|
 | 11 |  S SDCTI=0 F  S SDCTI=$O(^SD(409.41,SDCTI)) Q:'SDCTI  S SDCTAB($P(^(SDCTI,0),U,7))=SDCTI
 | 
|---|
 | 12 |  ;
 | 
|---|
 | 13 |  ; -- process deletions
 | 
|---|
 | 14 |  IF $D(SDCLOEY),$D(@SDROOT@("CLASSIFICATION","DELETE")) D
 | 
|---|
 | 15 |  . S SDCT=""
 | 
|---|
 | 16 |  . F  S SDCT=$O(@SDROOT@("CLASSIFICATION","DELETE",SDCT)) Q:SDCT=""  D
 | 
|---|
 | 17 |  .. ; -- valid class
 | 
|---|
 | 18 |  .. S SDCTI=$$VALID(SDCT,.SDCTAB) Q:'SDCTI
 | 
|---|
 | 19 |  .. ; -- delete co completion date ; delete class entry ; send warning
 | 
|---|
 | 20 |  .. D COMDT^SDCODEL(SDOE),DEL^SDAPICO(SDOE,409.42,SDCTI),ERRFILE^SDAPIER(1045)
 | 
|---|
 | 21 |  ;
 | 
|---|
 | 22 |  ; -- warning if class data not required but passed
 | 
|---|
 | 23 |  IF '$D(SDCLOEY),$D(@SDROOT@("CLASSIFICATION","ADD"))!($D(@SDROOT@("CLASSIFICATION","CHANGE"))) D ERRFILE^SDAPIER(1040) G CLASSQ
 | 
|---|
 | 24 |  ;
 | 
|---|
 | 25 |  F SDACT="ADD","CHANGE" D
 | 
|---|
 | 26 |  . S SDCT=""
 | 
|---|
 | 27 |  . F  S SDCT=$O(@SDROOT@("CLASSIFICATION",SDACT,SDCT)) Q:SDCT=""  D
 | 
|---|
 | 28 |  .. S SDVAL=@SDROOT@("CLASSIFICATION",SDACT,SDCT)
 | 
|---|
 | 29 |  .. ; -- valid class abbrev passed
 | 
|---|
 | 30 |  .. S SDCTI=$$VALID(SDCT,.SDCTAB) Q:'SDCTI
 | 
|---|
 | 31 |  .. ; -- vaild format for class value passed
 | 
|---|
 | 32 |  .. S SDCT0=$G(^SD(409.41,SDCTI,0))
 | 
|---|
 | 33 |  .. IF '$$CHKVAL(SDCT0,.SDVAL) D ERRFILE^SDAPIER(1044,$P(SDCT0,U)_U_SDVAL) Q
 | 
|---|
 | 34 |  .. S SDCTVAL(SDCTI)=SDVAL
 | 
|---|
 | 35 |  .. ; -- if change to sc class then delete c/o process date & send warning
 | 
|---|
 | 36 |  .. IF SDCTI=3,$G(SDCLOEY(3)),$P(SDCLOEY(3),U,2)]"",SDCTVAL(3)'=$P(SDCLOEY(3),U,2) D COMDT^SDCODEL(SDOE),ERRFILE^SDAPIER(1046)
 | 
|---|
 | 37 |  ;
 | 
|---|
 | 38 |  ; -- get required sequence to file class (ie. force sc to be 1st)
 | 
|---|
 | 39 |  S SDCTIS=$$SEQ^SDCO21
 | 
|---|
 | 40 |  F SDCTS=1:1 S SDCTI=+$P(SDCTIS,",",SDCTS) Q:'SDCTI!($D(SDCOQUIT))  D
 | 
|---|
 | 41 |  . ; -- check to see if specific class is needed
 | 
|---|
 | 42 |  . IF $D(SDCTVAL(SDCTI)),'$D(SDCLOEY(SDCTI)) D ERRFILE^SDAPIER(1047,$P($G(^SD(409.41,SDCTI,0)),U,7)) Q
 | 
|---|
 | 43 |  . ; process specific class
 | 
|---|
 | 44 |  . IF $D(SDCLOEY(SDCTI)) D
 | 
|---|
 | 45 |  .. D ONE(SDCTI,SDCLOEY(SDCTI),SDOE,$G(SDCTVAL(SDCTI)))
 | 
|---|
 | 46 |  .. ; -- if service connected class do consistency checks
 | 
|---|
 | 47 |  .. IF SDCTI=3 F I=1,2,4 D SC^SDCO21(I,SDOE,"",.SDCLOEY)
 | 
|---|
 | 48 | CLASSQ Q
 | 
|---|
 | 49 |  ;
 | 
|---|
 | 50 | VALID(SDCT,SDCTAB) ; -- warning if not a valid class passed
 | 
|---|
 | 51 |  N SDCTI
 | 
|---|
 | 52 |  S SDCTI=+$G(SDCTAB(SDCT))
 | 
|---|
 | 53 |  IF 'SDCTI D ERRFILE^SDAPIER(1041,SDCT)
 | 
|---|
 | 54 |  Q SDCTI
 | 
|---|
 | 55 |  ;
 | 
|---|
 | 56 | ONE(SDCTI,SDATA,SDOE,SDVAL) ;Process One Classification at a time
 | 
|---|
 | 57 |  ; Input  -- SDCTI    Outpatient Classification Type IEN
 | 
|---|
 | 58 |  ;           SDATA    Null or 409.42 IEN^Internal Value^1=n/a^1=unedt
 | 
|---|
 | 59 |  ;           SDOE     Outpatient Encounter file IEN
 | 
|---|
 | 60 |  ; Output -- <none>
 | 
|---|
 | 61 |  ;
 | 
|---|
 | 62 |  N SDCT0,DIK,DA
 | 
|---|
 | 63 |  S SDCT0=$G(^SD(409.41,SDCTI,0)) G ONEQ:SDCT0']""
 | 
|---|
 | 64 |  ; -- no longer applicable
 | 
|---|
 | 65 |  IF SDATA,$P(SDATA,"^",3) D  G ONEQ
 | 
|---|
 | 66 |  . N DIK,DA
 | 
|---|
 | 67 |  . S DA=+SDATA,DIK="^SDD(409.42," D ^DIK
 | 
|---|
 | 68 |  . D ERRFILE^SDAPIER(1042,$P(SDCT0,U))
 | 
|---|
 | 69 |  ; --  uneditable
 | 
|---|
 | 70 |  IF SDATA,$P(SDATA,"^",4) D ERRFILE^SDAPIER(1043,$P(SDCT0,U)) G ONEQ
 | 
|---|
 | 71 |  ; -- file data
 | 
|---|
 | 72 |  IF SDVAL]"" D FILE^SDCO20(+SDATA,SDVAL)
 | 
|---|
 | 73 | ONEQ Q
 | 
|---|
 | 74 |  ;
 | 
|---|
 | 75 | CHKVAL(SDCT0,SDVAL) ; -- validate classification value and convert
 | 
|---|
 | 76 |  N Y,SDTYPE
 | 
|---|
 | 77 |  S SDTYPE=$P(SDCT0,U,3),Y=0
 | 
|---|
 | 78 |  IF SDTYPE="Y",SDVAL="Y"!(SDVAL="N") S Y=1,SDVAL=$S(SDVAL="Y":1,1:0)
 | 
|---|
 | 79 |  IF SDTYPE="N",SDVAL=+SDVAL S Y=1
 | 
|---|
 | 80 |  Q Y
 | 
|---|
 | 81 |  ;
 | 
|---|