| 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 | ; | 
|---|