| 1 | SDOERPC ;ALB/MJK - ACRP RPCs For An Encounter ;8/12/96 | 
|---|
| 2 | ;;5.3;Scheduling;**131,196**;Aug 13, 1993 | 
|---|
| 3 | ;06/22/99 ACS - Added CPT modifier logic for the AMB CARE toolkit | 
|---|
| 4 | ; | 
|---|
| 5 | ; ------------------------- cpt rpcs -------------------------- | 
|---|
| 6 | ; | 
|---|
| 7 | CPT(SDOEY,SDOE) ; -- SDOE ASSIGNED A PROCEDURE             [API ID: 65] | 
|---|
| 8 | S SDOEY=$$CPT^SDOECPT(SDOE) | 
|---|
| 9 | Q | 
|---|
| 10 | ; | 
|---|
| 11 | GETCPT(SDOEY,SDOE) ; -- SDOE GET PROCEDURES           [API ID: 61] | 
|---|
| 12 | D GETCPT^SDOECPT(.SDOE,"SDOEY") | 
|---|
| 13 | ; | 
|---|
| 14 | ; The following logic will remove the 2nd level subscripts | 
|---|
| 15 | ; (containing modifier information) from the CPT array because they | 
|---|
| 16 | ; aren't relevant for this routine | 
|---|
| 17 | N LEVEL1,LEVEL2 | 
|---|
| 18 | S (LEVEL1,LEVEL2)="" | 
|---|
| 19 | F  S LEVEL1=$O(SDOEY(LEVEL1)) Q:'LEVEL1  D | 
|---|
| 20 | . F  S LEVEL2=$O(SDOEY(LEVEL1,LEVEL2)) Q:LEVEL2=""  D | 
|---|
| 21 | .. K SDOEY(LEVEL1,LEVEL2) | 
|---|
| 22 | .. Q | 
|---|
| 23 | . Q | 
|---|
| 24 | Q | 
|---|
| 25 | ; | 
|---|
| 26 | FINDCPT(SDOEY,SDOE,SDCPTID) ; -- SDOE FIND PROCEDURE   [API ID: 71] | 
|---|
| 27 | S SDOEY=$$FINDCPT^SDOECPT(SDOE,SDCPTID) | 
|---|
| 28 | Q | 
|---|
| 29 | ; | 
|---|
| 30 | ; ------------------------- dx rpcs -------------------------- | 
|---|
| 31 | ; | 
|---|
| 32 | DX(SDOEY,SDOE) ; -- SDOE ASSIGNED A DIAGNOSIS             [API ID: 64] | 
|---|
| 33 | S SDOEY=$$DX^SDOEDX(SDOE) | 
|---|
| 34 | Q | 
|---|
| 35 | ; | 
|---|
| 36 | GETDX(SDOEY,SDOE) ; -- SDOE GET DIAGNOSES                    [API ID: 56] | 
|---|
| 37 | D GETDX^SDOEDX(.SDOE,"SDOEY") | 
|---|
| 38 | Q | 
|---|
| 39 | ; | 
|---|
| 40 | FINDDX(SDOEY,SDOE,SDDXID) ; -- SDOE FIND DIAGNOSIS           [API ID: 70] | 
|---|
| 41 | S SDOEY=$$FINDDX^SDOEDX(SDOE,SDDXID) | 
|---|
| 42 | Q | 
|---|
| 43 | ; | 
|---|
| 44 | GETPDX(SDOEY,SDOE) ; -- SDOE GET PRIMARY DIAGNOSIS    [API ID: 73] | 
|---|
| 45 | S SDOEY=$$GETPDX^SDOEDX(SDOE) | 
|---|
| 46 | Q | 
|---|
| 47 | ; | 
|---|
| 48 | ; ------------------------- provider rpcs -------------------------- | 
|---|
| 49 | ; | 
|---|
| 50 | PRV(SDOEY,SDOE) ; -- SDOE ASSIGNED A PROVIDER              [API ID: 63] | 
|---|
| 51 | S SDOEY=$$PRV^SDOEPRV(SDOE) | 
|---|
| 52 | Q | 
|---|
| 53 | ; | 
|---|
| 54 | GETPRV(SDOEY,SDOE) ; -- SDOE GET PROVIDERS            [API ID: 58] | 
|---|
| 55 | D GETPRV^SDOEPRV(.SDOE,"SDOEY") | 
|---|
| 56 | Q | 
|---|
| 57 | ; | 
|---|
| 58 | FINDPRV(SDOEY,SDOE,SDPRVID) ; -- SDOE FIND PROVIDER    [API ID: 69] | 
|---|
| 59 | S SDOEY=$$FINDPRV^SDOEPRV(SDOE,SDPRVID) | 
|---|
| 60 | Q | 
|---|
| 61 | ; | 
|---|
| 62 | ; --------------------------------oe rpcs-------------------------- | 
|---|
| 63 | ; | 
|---|
| 64 | GETOE(SDOEY,SDOE) ; -- SDOE GET ZERO NODE                    [API ID: 98] | 
|---|
| 65 | S SDOEY=$$GETOE^SDOEOE(SDOE) | 
|---|
| 66 | Q | 
|---|
| 67 | ; | 
|---|
| 68 | GETGEN(SDOEY,SDOE) ; -- SDOE GET GENERAL DATA         [API ID: 76] | 
|---|
| 69 | N SDAT,SDATAOE | 
|---|
| 70 | S SDAT="SDATAOE" | 
|---|
| 71 | D GETGEN^SDOEOE(.SDOE,.SDAT) | 
|---|
| 72 | D BUILD(.SDATAOE,.SDOEY) | 
|---|
| 73 | Q | 
|---|
| 74 | ; | 
|---|
| 75 | PARSE(SDOEY,SDATA,SDFMT) ; -- SDOE PARSE GENERAL DATA       [API ID: 78] | 
|---|
| 76 | N SDY | 
|---|
| 77 | S SDY="SDATAOE" | 
|---|
| 78 | D PARSE^SDOEOE(.SDATA,.SDFMT,.SDY) | 
|---|
| 79 | D BUILD(.SDATAOE,.SDOEY) | 
|---|
| 80 | Q | 
|---|
| 81 | ; | 
|---|
| 82 | EXAE(SDOEY,DFN,SDBEG,SDEND,SDFLAGS) ; -- SDOE FIND FIRST STANDALONE [API ID: 72] | 
|---|
| 83 | S SDOEY=$$EXAE^SDOEOE(.DFN,.SDBEG,.SDEND,$G(SDFLAGS)) | 
|---|
| 84 | Q | 
|---|
| 85 | ; | 
|---|
| 86 | GETLAST(SDOEY,DFN,SDBEG,SDFLAGS) ; -- SDOE FIND LAST STANDALONE          [API ID: 75] | 
|---|
| 87 | S SDOEY=$$GETLAST^SDOEOE(.DFN,.SDBEG,$G(SDFLAGS)) | 
|---|
| 88 | Q | 
|---|
| 89 | ; | 
|---|
| 90 | EXOE(SDOEY,DFN,SDBEG,SDEND,SDFLAGS) ; -- SDOE FIND FIRST ENCOUNTER  [API ID: 74] | 
|---|
| 91 | S SDOEY=$$EXOE^SDOEOE(.DFN,.SDBEG,.SDEND,$G(SDFLAGS)) | 
|---|
| 92 | Q | 
|---|
| 93 | ; | 
|---|
| 94 | ; | 
|---|
| 95 | LIST(SDOEY,SDBEG,SDEND) ; -- RPC: SDOE LIST ENCOUNTERS FOR DATES | 
|---|
| 96 | N SDQID | 
|---|
| 97 | D OPEN(.SDOEY,.SDQID) | 
|---|
| 98 | IF '$$ERRCHK^SDQUT() D INDEX^SDQ(.SDQID,"DATE/TIME","SET") | 
|---|
| 99 | IF '$$ERRCHK^SDQUT() D DATE^SDQ(.SDQID,SDBEG,SDEND,"SET") | 
|---|
| 100 | D CLOSE(.SDQID) | 
|---|
| 101 | LISTQ Q | 
|---|
| 102 | ; | 
|---|
| 103 | LISTPAT(SDOEY,SDFN,SDBEG,SDEND) ; -- RPC: SDOE LIST ENCOUNTERS FOR PAT | 
|---|
| 104 | N SDQID | 
|---|
| 105 | D OPEN(.SDOEY,.SDQID) | 
|---|
| 106 | IF '$$ERRCHK^SDQUT() D INDEX^SDQ(.SDQID,"PATIENT/DATE","SET") | 
|---|
| 107 | IF '$$ERRCHK^SDQUT() D PAT^SDQ(.SDQID,SDFN,"SET") | 
|---|
| 108 | IF '$$ERRCHK^SDQUT() D DATE^SDQ(.SDQID,SDBEG,SDEND,"SET") | 
|---|
| 109 | D CLOSE(.SDQID) | 
|---|
| 110 | LISTPATQ Q | 
|---|
| 111 | ; | 
|---|
| 112 | LISTVST(SDOEY,SDVST) ; -- RPC: SDOE LIST ENCOUNTERS FOR VISIT | 
|---|
| 113 | N SDQID | 
|---|
| 114 | D OPEN(.SDOEY,.SDQID) | 
|---|
| 115 | IF '$$ERRCHK^SDQUT() D INDEX^SDQ(.SDQID,"VISIT","SET") | 
|---|
| 116 | IF '$$ERRCHK^SDQUT() D VISIT^SDQ(.SDQID,SDVST,"SET") | 
|---|
| 117 | D CLOSE(.SDQID) | 
|---|
| 118 | LISTVSTQ Q | 
|---|
| 119 | ; | 
|---|
| 120 | OPEN(SDOEY,SDQID) ; -- initialize query | 
|---|
| 121 | S SDOEY=$NA(^TMP("SD ENCOUNTER LIST",$J)) | 
|---|
| 122 | K ^TMP("SD ENCOUNTER LIST",$J) | 
|---|
| 123 | D OPEN^SDQ(.SDQID) | 
|---|
| 124 | OPENQ Q | 
|---|
| 125 | ; | 
|---|
| 126 | CLOSE(SDQID) ; -- finalize query + scan + close | 
|---|
| 127 | IF '$$ERRCHK^SDQUT() D SCANCB^SDQ(.SDQID,"D CB^SDOERPC(Y,Y0,.SDSTOP)","SET") | 
|---|
| 128 | IF '$$ERRCHK^SDQUT() D ACTIVE^SDQ(.SDQID,"TRUE","SET") | 
|---|
| 129 | IF '$$ERRCHK^SDQUT() D SCAN^SDQ(.SDQID) | 
|---|
| 130 | D CLOSE^SDQ(.SDQID) | 
|---|
| 131 | CLOSEQ Q | 
|---|
| 132 | ; | 
|---|
| 133 | CB(SDOE,SDOE0,SDSTOP) ; -- callback for LIST* tags | 
|---|
| 134 | S ^TMP("SD ENCOUNTER LIST",$J,SDOE)=SDOE_";;"_SDOE0 | 
|---|
| 135 | Q | 
|---|
| 136 | ; | 
|---|
| 137 | BUILD(IN,OUT) ; -- build array for rpc lists | 
|---|
| 138 | N IEN | 
|---|
| 139 | S IEN="" | 
|---|
| 140 | F  S IEN=$O(IN(IEN)) Q:IEN=""  S OUT(IEN)=IEN_";;"_IN(IEN) | 
|---|
| 141 | Q | 
|---|
| 142 | ; | 
|---|